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

C++ if else用户验证分支逻辑执行异常问题排查求助

C++用户输入判断逻辑异常问题解答

问题产生原因

你的判断逻辑仅会执行1次:

  • 第一次输入非法值进入else分支后,仅重新读取了一次用户输入,没有对新输入的内容做二次判断
  • 读取完新输入后程序会直接走到return 0语句退出,因此不会触发1/2对应的分支逻辑
    该问题和你用if-else还是switch无关,属于单次判断逻辑的固有缺陷。

修复方案

将用户输入、合法性判断的逻辑套入循环结构,仅当用户输入合法值(1/2)时才跳出循环,再执行对应分支逻辑。

修正后的代码示例

int main()
{
    int account_or_not;
    account obj;
    menu menu_obj;

    // 循环读取输入直到合法
    while (true) {
        cout << "Do you have an account? 1 for yes or 2 for no " << endl;
        cin >> account_or_not;
        if (account_or_not == 1 || account_or_not == 2) {
            break;
        }
        cout << "You entered a value other than 1 or 2 please try again " << endl;
    }

    // 此时输入一定合法,执行对应逻辑
    if (account_or_not == 1)
    {
        menu_obj.user_menu();
    }
    else
    {
        obj.create_account();
    }
  
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:27:04