switch问题

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:18:04
#include "iostream.h"
int main()
{

bool quit=false;
for(;;)
{
int x;
cout<<"请输入一个0~50之间的数字(输入'q'退出):";
cin>>x;
switch(x)
{
case 0:cout<<"你输入的是:零\n";break;
case 1:cout<<"你输入的是:壹\n";break;
case 2:cout<<"你输入的是:贰\n";break;
case 3:cout<<"你输入的是:参\n";break;
case 9:cout<<"你输入的是:玖\n";break;
case 10:cout<<"你输入的是:拾\n";break;
case 49:cout<<"你输入的是:肆玖\n";break;
case 50:cout<<"你输入的是:伍拾\n";break;

case 'q':quit=true;break;
default:cout<<"您输入的不是0到50之间的有效数字. \n";
}
if (quit==true)
{
break;
}
}
cout<<"\n 程序结束\n";
return 0;
}

case到49没问题,到50有问题?

这个才是正确的实现:
#include <iostream>
using namespace std;

int main(void)
{
while( true )
{
int x;
cout<<"请输入一个0~50之间的数字(输入'q'退出):";
cin>>x;

if( cin.fail() )
{
break;
}
switch(x)
{
case 0:cout<<"你输入的是:零\n";break;
case 1:cout<<"你输入的是:壹\n";break;
case 2:cout<<"你输入的是:贰\n";break;
case 3:cout<<"你输入的是:参\n";break;
case 9:cout<<"你输入的是:玖\n";break;
case 10:cout<<"你输入的是:拾\n";break;
case 49:cout<<"你输入的是:肆玖\n";break;
case 50:cout<<"你输入的是:伍拾\n";break;
default:cout<<"您输入的不是0到50之间的有效数字. \n";
}
}
cout<<"\n 程序结束\n";

return 0;
}