gri*_*eak 39 c coding-style curly-braces switch-statement
我在C/Objective-C/C++中使用大括号和我的所有switch case语句
直到不久之前,我还没有考虑过break;
在括号内加入声明是好还是坏.我怀疑它没关系,但我认为它仍然值得问.
switch (foo) {
case 1: {
// stuff
break;
}
default: {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
VS
switch (foo) {
case 1: {
// stuff
} break;
default: {
// stuff
} break;
}
Run Code Online (Sandbox Code Playgroud)
Oli*_*rth 29
简短的回答:没关系.
gre*_*lom 11
只是给出一个稍微详细的答案......
官方C99规范说明以下关于break语句:
break语句终止执行最小的封闭开关或迭代语句.
所以真的没关系.至于我,我把断裂放在花括号内.既然你也可以在花括号内的其他地方休息,那么在大括号内也有结束断点更合乎逻辑.有点像退货声明.
如何组合花括号和开关有很多不同的编码风格.我将在示例中使用我更喜欢的那个.break
无论位置如何,该语句都会突破最内层的循环或switch语句.例如,您可以为单个案例设置多个中断:
switch (foo) {
case 1:
{
if (bar)
break;
bar = 1;
...
}
break;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以把案件的任何地方,虽然这是有些认为是不好的做法.案例标签非常类似于转到标签.碰巧我写了这样的东西:
switch (foo) {
case 1:
bar = 1;
if (0) {
case 2:
bar = 2;
}
...
break;
}
Run Code Online (Sandbox Code Playgroud)
但要小心使用它.
归档时间: |
|
查看次数: |
16980 次 |
最近记录: |