在布尔表达式中使用多个或opreator

时间:2016-03-13 00:23:41

标签: java

例如,在代码中,结果之一是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);

2 个答案:

答案 0 :(得分:1)

您的循环条件为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

答案 1 :(得分:0)

你从未在while循环中使用过c == 0。因此,如果a,b和e中的任何一个变为零,则循环将中断。

java和其他语言读取布尔值为T和F组合。

  • T T T T = T
    -T T T F = T
    -...........
    -...
  • F F F F = F

所以如果一切都是假的,那就是真的。