【问题标题】:C++ : for loop in a switch caseC ++:开关盒中的for循环
【发布时间】:2016-12-13 07:55:13
【问题描述】:

我正在研究 C++。我想知道是否有任何可能的方法在开关盒内使用 for 循环?我尝试执行下面显示的代码(类似这样,但以详细和正确的方式),但我没有看到案例 c 中的循环。关于如何解决的任何想法?非常感谢您的帮助。非常感谢你。 :)

switch (alphabets) 
{
    case a:
        //execute this code
        break;

    case b:
        //execute this code
        break;

    case c: 
        for (int c= 0; c >=200; c++)
            //execute this code
            break;

    default:
        break; 
}

【问题讨论】:

  • 该伪代码在正确填写后似乎应该可以工作。不过,我建议为您的案例块使用大括号:case c: { /* ... some lines of code ...*/ break; }
  • 不应该是c <= 200吗?
  • @nick_n_a,我们可以在 C++ 中做到这一点。
  • @pritha 请出示你的真实代码,以便我们尝试编译它。
  • abc const 变量是否在别处定义,或者它们是否旨在表示字符?如果是这样,它们应该用单引号括起来:case 'a': 您在上面的评论中提到的错误是因为您已将 c 声明为非常量 int,然后尝试说 case c: 这是无效的,因为 C++ 需要case 值表达式是常量。

标签: c++ for-loop switch-statement


【解决方案1】:

一般性答案:在 switch case 中有一个循环是没有问题的。唯一需要注意的是循环中的break 将停止循环,但会留在盒子中。另请注意,具有大量逻辑的 switch case 变得不那么可读。见basic example of for loop in switch case

具体答案:在 switch case 中声明变量在使用大括号并避免重用名称(在这种情况下为 c)时效果最好,因为即使它编译,它仍然是一个混乱的来源。关于你的具体代码(我假设是伪代码),for-body 只包含一个break 语句,所以它只会声明 c 然后进入默认值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多