import java.util.Scanner;
public class test{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int a = 1;
int b = 1;
while (a != 0 || b != 0){
System.out.println("");
a = in.nextInt();
b = in.nextInt();
}
}
}
我的问题是为什么" a" AND" b"需要0暂时停止? 我能做些什么来修复?我可以创建一个新变量然后:
if (a = 0){
//blabla...
}
但我宁愿不......
答案 0 :(得分:4)
Java while
循环在其条件变为false
时停止。根据逻辑规律,否定
a != 0 || b != 0
是
a == 0 && b == 0
如果你想要一个不同的破坏条件,那就继续添加它。
如果你想要一个好的阅读,请查看Wikipedia article on logical equivalence,除此之外,你还可以找到名为De Morgan's laws的内容,其中包含:{/ p>
¬(p∨q)≡¬p∧¬q
答案 1 :(得分:0)
您目前的状况:
while (a != 0 || b != 0)
等同于@TimBiegeleisen所说:
while(a == 0 && b == 0)
而且,正如你意识到的那样,你不希望如此。修复你的条件:
while(!(a == 0 || b == 0))
因为这是你想要的条件。
您的完整代码应为:
import java.util.Scanner;
public class test{
public static void main(String []args){
Scanner in = new Scanner(System.in);
int a = 1;
int b = 1;
while (!(a == 0 || b == 0)){
System.out.println("");
a = in.nextInt();
b = in.nextInt();
}
}
}
答案 2 :(得分:0)
Java while循环将像
一样工作while(o) means false, means it will not enter inside the loop
while(1) means true, means it will enter inside the loop.
根据这种情况,您可以将表达式传递给while循环。