我会围绕这个陈述包含什么类型的循环?

时间:2014-09-10 13:22:11

标签: c++

出于某种原因,我对于应该围绕这个switch语句包含什么类型的循环感到非常困惑。如果我有下面的switch语句,我希望用户能够继续输入击键,直到遇到其中一种类型的循环最适合这种情况的情况?

谢谢,

int input;

cin >> input;

    switch( input )
{
    case 1:
        playgame();
        break;
    case 2:
        loadgame();
        break;
    case 3:
        Multiplayer();
        break;
    case 4:
        cout << "Thanks, exitting now \n";
        break;
    default:
        cout << "error \n";
        cin >> input;
        break;
}

2 个答案:

答案 0 :(得分:2)

缺少一些停止条件。

int input = 0; // make a habit of initialising all variables
bool again = true;
while(again) { // could use input != 4 (stop value)
cin >> input;

...
case 4: // magic numbers are bad, maybe use enum for the cases.
    cout << "Thanks, exiting now \n";
    again = false; // <----- else you wont get out.
    break;
...
}

答案 1 :(得分:0)

我建议使用while循环,因为您可以确保循环在退出之前至少执行了1次。此外,由于您不知道用户可能在循环中迭代多少次,因此For循环不合适。