为什么输出q跳不出循环?

#include<iostream>
using namespace std;
int main()
{
char number;
for(;;)
{
cout<<"请输入一个数字(1-3之间),输入q退出。"<<endl;
cin>>number;
switch(number)
{
case '1':cout<<"你输入的是1!\n";
continue;
case '2':cout<<"你输入的是2!\n";
continue;
case '3':cout<<"你输入的是3!\n";
continue;
case 'q':break;
case 'Q':break;
default:cout<<"你输入的不是1-3的数字!"<<endl;
}
}
cout<<"程序结束,再见。"<<endl;
return 0;
}

海绵宝宝撒
浏览 195回答 3
3回答

莫回无

你只要在switch和for循环之间加多一句break就OK了,即switch(number){case '1':cout<<"你输入的是1!\n";continue;case '2':cout<<"你输入的是2!\n";continue;case '3':cout<<"你输入的是3!\n";continue;case 'q':break;case 'Q':break;//这个的作用是跳出switchdefault:cout<<"你输入的不是1-3的数字!"<<endl;}break;//这个的作用是跳出循环}cout<<"程序结束,再见。"<<endl;return 0;}

慕桂英4014372

你的输入Q或q以后,是跳出了switch这个结构,可是还在for循环中,仍会进行下一次循环。把输入q或Q跳出for循环就结束了。可以将代码改为(经过vc6.0调试):#include<iostream>using namespace std;int main(){char number;for(;;){cout<<"请输入一个数字(1-3之间),输入q退出。"<<endl;cin>>number;switch(number){case '1':cout<<"你输入的是1!\n";continue;case '2':cout<<"你输入的是2!\n";continue;case '3':cout<<"你输入的是3!\n";continue;case 'q':goto loop;case 'Q':goto loop;default:cout<<"你输入的不是1-3的数字!"<<endl;}}loop:cout<<"程序结束,再见。"<<endl;return 0;}//===================================================================//此时就可以完成程序的目的。//以上仅供参考,如有不足,请高手指出不足之处。//===================================================================

慕仙森

break;跳出switch ;和循环没关系吧,而且continue没必要,直接用break就行,一般情况下一个case对应一break语句
打开App,查看更多内容
随时随地看视频慕课网APP