C++ 如何使这段代码不总是默认,即使我输入了一个字符?

C++ 如何使这段代码不总是默认,即使我输入了一个字符?,c++,switch-statement,runtime-error,C++,Switch Statement,Runtime Error,是的,我在同一个函数中将choice声明为字符变量,并将flag声明为整数。不能您忘记了: do { cout事实上,你有两个打字错误: 您不设置标志,只将其与值进行比较(=而不是=) 您忘记了一个break语句 所以 案例“Y”: 案例“y”: { flag==1; cout Missingbreaks。一个好的交互式调试器是你的朋友。如果你在调试器中运行代码,一步一步地逐行执行,你会立即看到发生了什么。如果你告诉我们你使用的是什么操作系统,我或其他人可以为你推荐一个合适的调试器

是的,我在同一个函数中将choice声明为字符变量,并将
flag
声明为整数。
不能您忘记了:

do
{

cout事实上,你有两个打字错误:

  • 您不设置
    标志
    ,只将其与值进行比较(
    =
    而不是
    =
  • 您忘记了一个
    break
    语句
  • 所以

    案例“Y”:
    案例“y”:
    {       
    flag==1;
    
    cout Missing
    break
    s。一个好的交互式调试器是你的朋友。如果你在调试器中运行代码,一步一步地逐行执行,你会立即看到发生了什么。如果你告诉我们你使用的是什么操作系统,我或其他人可以为你推荐一个合适的调试器。我建议在发布任何调试器之前,至少付出一些努力事情。编译器警告选项是你的朋友。它们应该提醒你一些表达式,比如
    flag==1;
    ,它们没有使用过,而且没有副作用。它们甚至可以建议在这里或那里插入
    break;
    。如果答案适合你,不要忘记点击answ下面的复选标记来接受它呃得分;)妈的,我很尴尬我不知道。非常感谢!
    do
    {
        cout << "\nWould you like to play again? Enter Y for yes, and N for no."<<endl;
        cin >> choice;
        switch (choice)
        {
            case 'Y':
            case 'y':
            {
                flag == 1;
                cout << flag;
            }
            case 'N':
            case 'n':   
            {       
                flag == 0;
                cout << flag;
            }
            default:
            {
                flag == 2;
                cout << "I did not understand that. Please enter a valid input!";   
                cout << flag;
            }
        }
    
    }   while (flag == 2 );
    
    do
    {
        cout << "\nWould you like to play again? Enter Y for yes, and N for no."<<endl;
        cin >> choice;
        switch (choice)
        {
            case 'Y':
            case 'y':
                {
                    flag == 1;
                    cout << flag;
                    break;
                }
            case 'N':
            case 'n':   
                {       
                    flag == 0;
                    cout << flag;
                    break;
                }
            default:
                {
                    flag == 2;
                    cout << "I did not understand that. Please enter a valid input!";   
                    cout << flag
                }
        }
    
    }   while (flag == 2 );
    
    case 'Y': 
    case 'y':   
    {       
        flag == 1;
        cout << flag;
    }
    case 'N':   
    case 'n': 
    {       
        flag == 0;
        cout << flag;
    }
    default:
    {
        flag == 2;
        cout << "I did not understand that. Please enter a valid input!";   
        cout << flag
    }
    
    case 'Y':
    case 'y':
        flag = 1;
        cout << flag;
        break;
    case 'N': 
    case 'n':        
        flag = 0;
        cout << flag;
        break;
    default:
        flag = 2;
        cout << "I did not understand that. Please enter a valid input!";   
        cout << flag