while 循环的条件在 java 中不起作用
Condition for while loop doesn't work in java
如果数字不等于 0 且 rest%2 等于 1 或 -1,我希望循环重复。但这似乎不起作用:
while (number != 0 && rest%2 == 1 || rest%2 == -1)
我必须如何编写代码才能正常工作?
正确的做法是:
while (number != 0 && (rest%2 == 1 || rest%2 == -1))
在这里查看 Java 运算符优先级 https://introcs.cs.princeton.edu/java/11precedence/
如果我没理解错你想在两种情况下进入循环:
number != 0 && rest%2 == 1
或
rest%2 == -1
如果是这样,请考虑使用括号:
while ((number != 0 && rest%2 == 1) || rest%2 == -1)
虽然了解运算符优先级很好,但您的表达式可以减少:
while (number != 0 && rest%2 != 0)
换句话说,n % 2
对于正偶数和负偶数都是 0,不是偶数的东西一定是奇数(这就是你正在测试的)。
如果数字不等于 0 且 rest%2 等于 1 或 -1,我希望循环重复。但这似乎不起作用:
while (number != 0 && rest%2 == 1 || rest%2 == -1)
我必须如何编写代码才能正常工作?
正确的做法是:
while (number != 0 && (rest%2 == 1 || rest%2 == -1))
在这里查看 Java 运算符优先级 https://introcs.cs.princeton.edu/java/11precedence/
如果我没理解错你想在两种情况下进入循环:
number != 0 && rest%2 == 1
或
rest%2 == -1
如果是这样,请考虑使用括号:
while ((number != 0 && rest%2 == 1) || rest%2 == -1)
虽然了解运算符优先级很好,但您的表达式可以减少:
while (number != 0 && rest%2 != 0)
换句话说,n % 2
对于正偶数和负偶数都是 0,不是偶数的东西一定是奇数(这就是你正在测试的)。