我的程序有两个输入 num1 和 num2。我想要我的 if 语句的一个条件,其中两个输入都不应该为零,两个输入都应该大于零但小于或等于 1000。while 循环应因输入 0 0 onl 而中断。我应该有两个 if 语句吗?
while (true)
{
Scanner input = new Scanner(System.in);
int num1 = input.nextInt();
int num2 = input.nextInt();
if ((num1 <= 1000 && num2 <= 1000) && (num1 > 0 && num2 > 0))
{
for (int num = num1; num <= num2; num++)
System.out.println(num);
}
else if (num1 == 0 && num2 == 0)
break;
}
这是多余的,因为您希望这些变量在它们(1-1000)
(num1!=0||num2!=0)
只需指定预期范围:
if (num1 > 0 && num1 <= 1000 && num2 > 0 && num2 <= 1000) {
...
}
while 循环应该与输入 0 0 中断,我应该只有两个 if 语句吗?
没必要。实际问题是Scanner.nextInput()
没有在您的while
中使用。 所以它永远不会起作用。
你可以这样做:
Scanner input = new Scanner(System.in);
while (true) {
int num1 = input.nextInt();
int num2 = input.nextInt();
if (num1|num2 == 0) break;
if (num1<=1000 && num2<=1000 && (num1|num2)>0)
// do your action
}
注意变量之间的单个|
以执行二进制OR而不是逻辑OR执行