[英]Use more than one or opreator in a boolean expression
例如,在代码中,结果之一是 1 1 0 1。显然(c==0)
布尔值为真,这个循环不应该停止它的工作。 所以我只是想知道 java 语法是如何读取这个布尔表达式的。
int a=0,b=0,c=0,e=0;
do {
a++;
b+=(int)(Math.random()*2);
c+=(int)(Math.random()*2);
e+=(int)(Math.random()*2);
System.out.println(a+" "+b+" "+c+" "+e);
} while (a==0|b==0|b==0|e==0);
System.out.println("final"+a+" "+b+" "+c+" "+e);
你的循环条件是a==0|b==0|b==0|e==0
。 因此,您永远不会检查c==0
。 将条件更改为a==0|b==0|c==0|e==0
应该可以工作。
另外,我建议使用||
OR 运算符,它是布尔 OR,而不是按位 OR |
.
因此,您的循环条件应该是a == 0 || b == 0 || c == 0 || e == 0
a == 0 || b == 0 || c == 0 || e == 0
a == 0 || b == 0 || c == 0 || e == 0
。
您从未在 while 循环中使用过 c==0。 因此,如果 a、b 和 e 中的任何一个变为零,则循环将中断。
而java等语言将boolean读作T和F组合。
所以如果一切都是假的,那么它就会是真的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.