【发布时间】:2020-01-27 11:44:25
【问题描述】:
我有以下 switch 和 break 没有 case :
char c = 'a';
switch(c) {
break;
case 'a' : cout << 'a' << endl;
break;
case 'b' : cout << 'b' << endl;
break;
default : break;
}
为什么这段代码 sn-p 打印a?只在遇到第一个break 语句后,switch 不应该中断吗?
【问题讨论】:
-
switch和break不能这样工作(正如您所注意到的)。不在case标签中的语句将被忽略。 -
不,为什么?在 switch 中,一旦遇到适当的情况,您就输入代码。否则默认触发。为什么还要考虑这种无案例中断?当无大小写代码在 switch 中时,它应该是一个警告。
-
fwiw,我期待这可以通过阅读 en.cppreference.com/w/cpp/language/break 来回答,尽管在阅读之后仍然可以相信您的代码符合您的预期......
标签: c++ switch-statement