我希望在数字不等于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)