Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我应该围绕这个语句进行什么类型的循环?_C++ - Fatal编程技术网

C++ 我应该围绕这个语句进行什么类型的循环?

C++ 我应该围绕这个语句进行什么类型的循环?,c++,C++,出于某种原因,我对应该围绕这个switch语句包装什么类型的循环感到非常困惑。如果我有下面的switch语句,并且我希望用户能够一直输入一个击键,直到它碰到其中一种情况,那么哪种类型的循环最适合用于此情况 谢谢 int input; cin >> input; switch( input ) { case 1: playgame(); break; case 2: loadgame(); br

出于某种原因,我对应该围绕这个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;
}
int输入;
cin>>输入;
开关(输入)
{
案例1:
游戏();
打破
案例2:
loadgame();
打破
案例3:
多人游戏();
打破
案例4:
不能输入;
打破
}

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

缺少一些停止条件

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;
...
}
int输入=0;//养成初始化所有变量的习惯
布尔再次=真;
while(同样){//可以使用输入!=4(停止值)
cin>>输入;
...
案例4://幻数不好,可能对案例使用enum。

cout Any loop都可以。它们本质上是一样的。因为您希望用户至少选择一次,
do while
可能在逻辑上是最好的,但是您可以让代码与
for
while
一起工作。根据您的描述,无限循环似乎是合适的:while(true){…}我尝试了while(true)出于某种原因,当我执行此操作并点击“4”时,它不会打印“谢谢,现在退出\n”.Pawel,我的想法完全相同。do-while循环对我来说最有逻辑意义,因为我总是至少执行一次此代码。也许这是我使用的条件,在do-while结束时你会建议什么条件?好的,我完全明白你的意思。它正在工作。谢谢你的帮助。如果我已经初始化了输入首先,我认为我能够解决这个问题。因此,我学到了一个很好的观点和教训。