在switch语句中继续使用循环语句?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我想从一个switch语句的中间跳转到以下代码中的循环语句:

while (something = get_something())
{
    switch (something)
    {
    case A:
    case B:
        break;
    default:
        // get another something and try again
        continue;
    }
    // do something for a handled something
    do_something();
}

这是一个有效的方式来使用continuecontinue语句是否被语句忽略switch?C和C ++在这里的行为有何不同?

提问于
用户回答回答于

这很好,continue声明与封闭循环相关,并且n 的代码应该等同于(避免这样的跳转语句):

while (something = get_something()) {
    if (something == A || something == B)
        do_something();
}

但是,如果你希望break退出循环,正如你的评论所暗示的那样(它总是用另一个东西再次尝试,直到它的计算结果为false),你将需要一个不同的结构。

例如:

do {
    something = get_something();
} while (!(something == A || something == B));
do_something();
用户回答回答于

是的,没关系. 就像在if声明中使用它一样。当然,你不能使用a break来跳出交换机内部的循环。

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答
  • 御姐万岁

    6 粉丝507 提问3 回答

扫码关注云+社区

领取腾讯云代金券