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

C++开发骰子游戏输入合法投注值后while循环无法跳出如何解决

问题产生原因

你编写的while循环条件逻辑错误:
逻辑或(||)的规则是只要任意一个子条件成立,整体表达式结果就为真。我们以合法投注值100代入验证:

  • bet1 <=99:不成立
  • bet1 >=101:不成立
  • bet1 <=299:100<=299,成立
    因此整个while条件返回真,程序进入循环要求重新输入。同理,300会满足bet1 <=499,500会满足bet1 <=499,所有合法投注值都会触发循环,永远无法跳出。

修复方案

推荐直接修改while循环的判断逻辑,仅当输入值不是三个合法值时才进入循环,可读性和可维护性更高:

cout << "Please place a bet. 100, 300, 500kr" << endl;
cin >> bet1;

// 仅投注值不等于100、且不等于300、且不等于500时,要求重新输入
while (bet1 != 100 && bet1 != 300 && bet1 != 500) {
    cout << "Please place a valid bet" << endl;
    cin >> bet1;
}
// 跳出循环时投注值已经合法,无需额外加if判断,可直接执行后续逻辑
cout << "You have deposited " << " " << bet1 << "" << "And you now have: "<< saldo - bet1 << " " << "Remaining on your account." << endl;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:06:03