【发布时间】:2014-03-17 09:34:08
【问题描述】:
C/C++ 中的 switch 语句有一个有趣的特性,如果满足条件,所有后续块都将被执行
例如,
int a = 2;
int b = a;
switch(b)
{
case 1:cout<<1;
case 2:cout<<2;
case 3:cout<<3;
case 4:cout<<4;
};
上面的代码将输出 234 除非我在 case 2 中添加了 break 语句。
在我的 C/C++ 编程经验的 3 年(相当小,是的)中,我从未遇到过必须使用 switch 而不放置 break 语句的问题在每个案例中。但从这个功能卡了这么久的事实来看,它可能有一些实用性。
问题:switch 语句有哪些巧妙的用法来利用 C/C++ 中的上述特性?
【问题讨论】:
-
我不知道你在寻找什么样的聪明用途,但你可以在这篇文章中阅读更多关于为什么
switch需要break:Why was the switch statement designed to need a break?。如该帖子所述,您可以使用此“功能”进行失败。 -
存在“问题”,可能需要以相同的方式处理多个值。这对于“问题”非常具体。太宽泛了,IMO。
-
为什么这个问题主要是基于意见的?我认为这是一个有效的问题!
-
@user3414693 试图找到某种
c++能力的巧妙用途并不是真正的标准SO问题。 -
这确实不是一个标准的 SO 问题,但我不会将其归类为基于意见而不是事实。也许“聪明”这个词会误导,但我要问的只是在编程语言中使用明显的“功能”。是的,我很难将单个答案标记为正确。
标签: c++ c switch-statement