import java.util.Scanner;
public class asg3 {
public static int setoriginal() {
int d=0;
int l=0;
do {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a 4 digit number: ");
d=input.nextInt();
if (d<=9999 || d>999) {
break;
} else {
System.err.printf ("You did not enter 4 digits\n");
}
l=l+1;
} while (l<3);
return d;
}
public static void main(String[] args) {
setoriginal();
}
}
当我输入 12345 时,它可以工作,但似乎对四位数以外的任何其他数字都不起作用。 知道什么可能是错的或者我做错了什么吗?
最佳答案
看看这个条件:
if (d <= 9999 || d > 999)
要使其评估为 false,您必须找到一个大于 9999且小于 1000 的值。我认为您很难找到这样的数字......
我怀疑你的意思是:
if (d <= 9999 && d > 999)
我个人会将其写为:
if (d >= 1000 && d <= 9999)
或
if (1000 <= d && d <= 9999)
在所有这些版本中,您基本上是在检查它是否大于或等于 1000并且它是否小于或等于 9999。
关于java - 为什么 (d <= 9999 || d > 999) 始终为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7999340/