给出以下序列
switch(1) {
case 1:
cout << "first \n";
case 2:
cout << "second \n";
default:
cout << "Not first nor the second";
}
输出
first
second
Not first nor the second
我期待输出
first
那么,如何比较价值?我知道我没有使用 break 语句,但这不是为了节省cpu时间吗?为什么第二种情况会执行,因为有两个不同的整数值?我错过了什么?
我使用gcc 4.9.2和-std = c ++ 11标志。
答案 0 :(得分:2)
如果您不使用break
,代码就会继续。我想在这个意义上它有点像GOTO标签。省略break
语句有合法用途,例如当您想要or
时......
switch(val) {
case 1:
case 2:
// if val is 1 or 2...
break;
case 3:
// if val == 3;
break;
}