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

为何while(decision1 != 1 || decision1 != 2)循环输入1或2时仍重复?

循环无法终止的原因分析

你的问题出在while循环的条件判断逻辑上:

原代码中的循环条件是:

while(decision1 != 1 || decision1 != 2)

这个条件永远为真,不管decision1输入的是1还是2:

  • 当输入1时,decision1 != 2成立,整个||(逻辑或)表达式结果为真,循环继续执行;
  • 当输入2时,decision1 != 1成立,同样整个表达式结果为真,循环不会终止。

正确的逻辑应该是:当输入既不是1也不是2的时候,才进入循环提示重新输入。所以需要把||换成&&(逻辑与):

std::cout << "How many toppings do you want? (1/2): ";
std::cin >> decision1;
    
while(decision1 != 1 && decision1 != 2)
{
    std::cout << "Please enter either 1 or 2\n";
    std::cout << "How many toppings do you want? (1/2): ";
    std::cin >> decision1;
}

这样只有当输入既不是1也不是2时,循环才会触发,输入1或2时条件不成立,循环正常终止。

内容的提问来源于stack exchange,提问作者Dominator 6.0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:30:53