C++中switch break的问题

switch
{
case 1
cout"hello"<<endl;
break;
case 2
cout"two"<<endl;
case 3
cout"hi"<<endl;
case 4
cout"bye"<<endl;
}
这个的输出为什么是hi bye, two为什么不输出?

switch
{
case 'A': cout << "at";
break;
case 'c': cout << "is";
break;
case 'm': cout << "hist";
break;
case 'a': cout << "hot";
case 'b': cout << "cold";
break;
case 'Z': cout << "in";
default: cout << "out";
这个输出又为什么是hot cold,后面in和out为什么不出来?
都是选择题,可能有点不标准的小错误。。本人刚C++入门
请高手回答
谢谢~!

第1个回答  2010-06-04
switch(choice)
{
case 1:cout<<"hi"<<endl;break;
case 2:cout<<"in"<<endl;
case 3:cout<<"out"<<endl;
}

1:如果choice==1,结果为hi
2:如果choice==2,结果为 in out
3:如果choice==3,结果为out
switch 是多选择结构(if else是双选择
结构),case作为开关的入口,遇到break
就跳出switch,如果遇不到,不管后面的匹配与否,都会执行,直到遇到break或结束跳出本回答被提问者采纳
第2个回答  2010-06-04
根据所给条件,到switch里面去寻找符合条件的语句,当找到后便执行。break语句是跳出switch的,如果没有break的话,则会一直往下执行,直到遇到switch的右花括号。
第3个回答  2010-06-04
switch
{
case 1
cout"hello"<<endl;
break;
case 2
cout"two"<<endl;//这些地方应该有break的
case 3
cout"hi"<<endl;//这些地方应该有break的
case 4
cout"bye"<<endl; //这些地方应该有break的
}

如果不加break就顺序执行下去 遇到break才跳出switch
下面的一样
因为 case 'a': cout << "hot";
case 'b': cout << "cold";
break; //这里有break了 所以就没有下面的内容了
case 'Z': cout << "in";
default: cout << "out";
第4个回答  2010-06-04
switch的case语句中如果加入break的话直接跳出switch。如果不加的话还会继续往下执行。
第一个switch后应该有(),并且里面的变量为4,所以输出 hi bye。(case 3 后无break)
第二个switch输出cold后已经跳出switch
第5个回答  2010-06-04
只要 case 后的语句没有BREAK 就一直执行直到遇到break 或switch结束
如果你不告诉我输出 我还真不知道你switch的是什么
相似回答