[英]else statements won't execute in an if else statement
由於某種原因,無論我做什么,每次我在Java程序中創建if else語句時,它要么只執行if語句,要么執行if和else語句。
import java.util.Scanner;
public class Week06_NelsonPimentel_Assignment {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] validnum;
int i = 0;
validnum = new int[5];
System.out.println("Please enter a number between 50 and 100");
while (i < validnum.length) {
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
System.out.println("yes");
i++;
} else {
System.out.println("no");
}
}
}
}
if (validnum[i] <= 101 || validnum[i] >= 49) {
將始終為true
,因此將打印“ yes”並遞增i
,除非i
當然不在數組范圍之內。
替換||
與&&
?
還可以考慮編寫int[] validnum = new int[5];
而不是具有兩個單獨的步驟。 這樣, validnum
永遠不會處於未初始化狀態,這會導致程序更穩定。
您的代碼中有一個無限循環 ,當validnum[i]
不滿足您的條件時,您不會推進循環索引。 以i++;
出來的if
或更換while
與循環( 注:你不NEET i++;
如果您使用for
循環):
for (int i = 0; i < validnum.length; i++) {
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
為什么使用數組? 在您發布的代碼中,這似乎浪費了內存。
根據您的業務邏輯,if語句將始終返回true。
我的觀察:請輸入50到100之間的數字。
validnum[i] = input.nextInt();
if (validnum[i] <= 101 || validnum[i] >= 49) {
}
無論您輸入的是50到100之間還是小於50或大於100之間,if語句將始終滿足以下條件之一
validnum[i] <= 101
validnum[i] >= 49
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.