switch 语句如何比较值?
How does switch statement compares values?
给定以下序列
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 时间吗?既然有两个不同的整数值,为什么会执行第二种情况呢?我错过了什么?
我正在使用带有 -std=c++11 标志的 gcc 4.9.2。
如果您不使用 break
,代码将继续。我猜它在这个意义上有点像 GOTO 标签。省略 break
语句有合法用途,例如当您想执行 or
...
switch(val) {
case 1:
case 2:
// if val is 1 or 2...
break;
case 3:
// if val == 3;
break;
}
给定以下序列
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 时间吗?既然有两个不同的整数值,为什么会执行第二种情况呢?我错过了什么?
我正在使用带有 -std=c++11 标志的 gcc 4.9.2。
如果您不使用 break
,代码将继续。我猜它在这个意义上有点像 GOTO 标签。省略 break
语句有合法用途,例如当您想执行 or
...
switch(val) {
case 1:
case 2:
// if val is 1 or 2...
break;
case 3:
// if val == 3;
break;
}