MTV*_*TVS 2 c++ switch-statement
为什么if块中的代码以任何方式执行?
switch(v)
{
case a:
break;
...
if(condition)
{
case f:
...
break;
case g:
...
break;
}
...
case z:
...
break;
default:
}
Run Code Online (Sandbox Code Playgroud)
C++编译器使用查找表或直接分支到case-statements.忽略你的if陈述.由于break它也没有达到case a.
很长的答案,你不能case使用这种方法'关闭' - 陈述.
相反,你需要这样的东西:
switch(v) {
case a :
break;
//...
case f :
if(condition) {
//...
}
break;
case g :
if(condition) {
//...
}
break
//...
case z :
break;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |