出于某种原因,无论我做什么,每次在我的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");
}
}
}
}
答案 0 :(得分:4)
if (validnum[i] <= 101 || validnum[i] >= 49) {
将始终评估为true
,因此将打印“是”并i
递增,除非i
超出数组的范围。
将||
替换为&&
?
同时考虑编写int[] validnum = new int[5];
而不是分开两个步骤。这样,validnum
永远不会处于未初始化的状态,这往往会导致更稳定的程序。
答案 1 :(得分:0)
您的代码中有无限循环,当validnum[i]
无法满足您的条件时,您不会提升循环索引。
从[{1}}中取出i++;
或将if
循环替换为(注意:如果您使用的话,请不要while
i++;
循环):
for
为什么要使用数组?在您发布的代码中,它看起来像浪费内存。
答案 2 :(得分:0)
根据您的业务逻辑,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