switch语句中的默认位置应该是什么?

时间:2017-12-27 18:58:24

标签: c++

我总是将default放在所有情况的最后并且它可以工作,但是,今天我运行了这一块代码,我的默认设置无效。我把它放在其他可能的位置,以检查它是否可行,但它没有。它运行得很好,除非我的用户输入与我所做的情况不符。任何人都可以告诉我代码有什么问题,或者我如何使默认声明工作?

int main(){      
    int selection;

    do
    {
        cout << "Please make a selection: \n";
        cout << "1) Addition\n";
        cout << "2) Subtraction\n";
        cout << "3) Multiplication\n";
        cout << "4) Division\n";
        cin >> selection;
    } while (selection != 1 && selection != 2 && selection != 3 &&
        selection != 4);

    switch (selection)
    {
    case 1:
        cout << "you want addition\n";
        break;
    case 2:
        cout << "you want subtraction\n";
        break;
    case 3:
        cout << "you want multiplication\n";
        break;
    case 4:
        cout << "you want division\n";
        break;
    default:
        cout << "you entered wrong operation\n";
        break;

    }

    cout << "You selected option #" << selection << "\n";
    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:1)

你的do while循环使程序无法继续使用不同于1,2,3或4的“selection”值。在这种情况下,你的switch语句只能达到你定义的4个案例,并且无法达到默认值案件。您可以通过排除do while循环来更改代码,只需输入一次即可。