c语言case用花括号吗,关于C#:在switch-case中使用花括号时的’break’语句

我在C / Objective-C / C ++中的所有switch case语句中都使用花括号

直到片刻之前,我还没有考虑在括号中包含break;语句是好是坏做法。 我怀疑这无关紧要,但是我认为仍然值得一问。

switch (foo) {

case 1: {

// stuff

break;

}

default: {

break;

}

}

switch (foo) {

case 1: {

// stuff

} break;

default: {

// stuff

} break;

}

只需将case语句放在父语句括号内即可。

我使用花括号是因为:stackoverflow.com/questions/92396/

简短的回答:没关系。

我想我可以接受(在一分钟内),但是长答案中有什么有趣的吗?

@gritospeak:麻烦您自己决定! (IMO,长答案只是表达个人喜好。)

我更喜欢将中断放在里面,因为我认为花括号定义了case语句的内容,而中断是这些内容的一部分。 我不希望花括号成为case语句内容的子集。

只是给出一个更详细的答案...

官方C99规范对break语句作了以下说明:

A break statement terminates execution of the smallest enclosing switch or iteration statement.

所以真的没关系。至于我,我把休息时间放在花括号内。由于在花括号内的其他位置也可以有休息处,因此在花括号内也有结尾处休息是更合乎逻辑的。有点像return语句。

关于如何组合花括号和开关,有很多不同的编码样式。在示例中,我将使用我更喜欢的一种。 break语句脱离最内层的loop或switch语句,而不管位置如何。例如,您可能在一个案例中有多个休息时间:

switch (foo) {

case 1:

{

if (bar)

break;

bar = 1;

...

}

break;

}

请注意,您也可以将箱子放在任何地方,尽管这在某种程度上被认为是不好的做法。外壳标签非常类似于goto标签。碰巧我写了这样的东西:

switch (foo) {

case 1:

bar = 1;

if (0) {

case 2:

bar = 2;

}

...

break;

}

但要小心使用。

你的第二个例子让我在座位上蠕动

除非您需要它们作为词法作用域,否则您可能不希望将它们放在首位。第一个例子对我来说看起来更好,但是我想真正的答案是,这只是一个品味问题。

为了解决这个问题,我使用花括号来提供范围:stackoverflow.com/questions/92396/

正如明确指出的那样,这只是个人风格的问题,但是我总是将break语句放在大括号之外:在我看来,将break放在大括号之前似乎可以跳出复合语句,从而稍微增加了意大利面条代码的感觉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值