You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中while循环复合执行条件不生效该如何修正

问题分析

代码未达到预期是逻辑运算符优先级导致的。绝大多数常用编程语言(C、C++、Java、Python、JavaScript等)中,&&的优先级高于||,你编写的原始判断会被程序自动解析为:

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

这种逻辑下只要rest%2 == -1成立,不管number是否为0,整个判断结果都会为真,和你要求的「同时满足两个条件:1.number不等于0;2.rest%2等于1或者-1」的规则不符。

修复方案

给rest%2的两个判断加括号明确运算优先级即可:

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

加括号后程序会先判断rest%2是否符合1或-1的要求,再和number != 0的条件做与运算,完全匹配你需要的逻辑。

可选优化写法

如果所用语言支持绝对值函数,也可以简化判断语句:

// 示例为C语言写法,其他语言替换为对应绝对值函数即可
while (number != 0 && abs(rest % 2) == 1)

内容的提问来源于stack exchange,提问作者Ciro Mertens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:06:01