while 循环的条件在 java 中不起作用



我希望在数字不等于0且其余%2等于1或-1时重复循环。但这似乎不起作用:

while (number != 0 && rest%2 == 1 || rest%2 == -1)

我要怎么写代码,使其工作?

虽然了解操作符优先级是件好事,但您的表达式可以简化为:

while (number != 0 && rest%2 != 0)

换句话说,n % 2对于正偶数和负偶数都是0,非偶数一定是奇数(这就是你正在测试的)。

这是正确的方法:

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)

最新更新