c++ - 对两个案例标签使用相同的值与对单个案例使用多个案例标签有什么区别?

标签 c++ switch-statement label case

我正在阅读 Bjarne 的《使用 C++ 编程和原理》

我遇到了以下有关 switch 的详细信息:

You can use several case labels for a single case.

You cannot use the same value for two case labels.

我想我清楚地理解了2.一。应该是指:

switch (a) {

  case 'c':{//some code} 

  case 'c':{//some (different) code} 
} 

合法。

但是,我不确定第一个是否意味着,如果案例 1 和案例 2 等等不同,那么我可以有任意数量的案例(当然它们是常量表达式)或者它意味着我可以有任意数量的案例,但其中一些案例做同样的事情

我发现了一个类似的问题: multiple label value in C switch case

我的解释对吗?如果不是,我遗漏或弄错了什么?

最佳答案

这是允许的:

switch ( expression )
{
    case 1:
    case 2: 
    case 3:
          //some code
          break;
    //...
}

这是允许的:

switch ( expression )
{
    case 1:
          //some code
          break;
    case 1:
          //some other code
          break;
    //...
}

关于c++ - 对两个案例标签使用相同的值与对单个案例使用多个案例标签有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57508474/

相关文章:

c++ - 计算平方根但 while 循环条件失败

c++ - C++中是否允许自 move 对象?

java - 如何在 Java 中返回带有 switch case 的随机变量?

javascript - 如何在开关警报中添加总小数值

java - 如何退出 switch 语句并返回到 While 循环?

c++ - 尝试编译 googletest 但出现以下错误 : '::OpenThread' has not been declared

c++ - Qt 如何从 QVector 的数据创建位图并将其显示在小部件上?

python - 如何使用 Python 将 BeautifulSoup.Tag 设置为 Gtk3 中的标签

python - 如何在python中的饼图上设置标签大小

java - 如何获得带有包装文本的标签?