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

为何do-while语句中判断大小写敏感需用and而非or?

为什么循环条件要用and而非or?

先明确代码的核心需求:只有当输入是"quit"/"Quit"/"QUIT"其中任意一个时,停止循环;其他情况都继续循环。

先看用or的后果

如果把条件改成input != "quit" or input != "Quit" or input != "QUIT",不管你输入什么,这个条件永远是true:

  • 假设输入"quit":input != "quit"是false,但input != "Quit"和input != "QUIT"都是true——只要or表达式里有一个true,整个结果就是true,循环会一直跑下去,永远停不了。
  • 哪怕输入"Quit"或"QUIT",同理,另外两个判断必然是true,or的结果还是true,循环根本停不下来。

再看用and的逻辑

input != "quit" and input != "Quit" and input != "QUIT"的意思是:只有当输入同时不等于这三个字符串时,才继续循环:

  • 输入"quit":input != "quit"是false,整个and表达式只要有一个false,结果就是false,循环终止,完全符合需求。
  • 输入任意其他内容(比如"abc"):三个判断都是true,and结果为true,循环继续执行,也符合需求。

简单总结:你要排除的是三个特定值,所以必须同时满足“不是A、不是B、不是C”才继续循环,这就得用and;如果用or,相当于“只要不是A,或者不是B,或者不是C就继续”——但任何值都不可能同时是A、B、C,所以这个条件永远成立,循环根本停不下来。


内容的提问来源于stack exchange,提问作者Jusraj Toor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:40:37