尽管语句变为假,但是无限循环

Isl*_*ssi 0 java while-loop

这段代码给了我无限循环,虽然sum变为等于7并变为等于(point)

while ( sum!=point || sum!=7)
{
    rollDices();
    System.out.println("rolling dices .. sum="+sum);
} //end while
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

while(sum!=point) 
Run Code Online (Sandbox Code Playgroud)

或这个

while(sum!=7)
Run Code Online (Sandbox Code Playgroud)

它没有任何问题,工作正常

nhg*_*rif 6

如果你陷入困境并且无法弄清楚为什么要做||&&不做你想做的事,那就制定一个"真值表".

对于||,OR运营商:

true || false  //returns true
true || true   //returns true
false || true  //returns true
false || false //returns false
Run Code Online (Sandbox Code Playgroud)

对于&&,AND运营商:

true && true   //returns true
true && false  //returns false
false && true  //returns false
false && false //returns false
Run Code Online (Sandbox Code Playgroud)


Sco*_*lme 5

你的逻辑略有缺陷.你的陈述是说虽然总和不等于点总和不等于7.它总是不等于其中一个,除非它们是相同的.

我想你想用&&:

while(sum!=point && sum!=7){
    rollDices();
    System.out.println("rolling dices .. sum="+sum);
}
Run Code Online (Sandbox Code Playgroud)

随着&&一次总和等于7或指向将退出循环.