[英]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.