【问题标题】:Can you use a while loop inside a case in switch statement in C?您可以在 C 中的 switch 语句中的 case 中使用 while 循环吗?
【发布时间】:2016-03-27 21:28:58
【问题描述】:

这可能是一个真的愚蠢的问题,如果是,请原谅我,但我之前一直在寻找答案,但我没有找到任何答案。是否可以写类似

case 'i':
    do
    {
        root=insert(root,code[1]);
        scanf("%s",code);
    }while (code[0]=='i');
    break;

在 C 中?感谢您的回答,如果这是一个愚蠢的问题,再次抱歉。祝你有美好的一天:)

【问题讨论】:

  • 是的,你可以,开关只是美化的 goto 标签
  • 是的,有可能。
  • 你可以通过实际尝试找到它!
  • 当然可以。你试过了吗?
  • 我试过了,我问这个问题的原因是因为我的代码使用了更多的 if 语句,一旦我编辑它并使用了 switch 语句,它就停止了工作。我只是想知道这是否会成为问题,但显然不是。谢谢你:)

标签: c loops switch-statement case


【解决方案1】:

如果您的项目需要它,那么您可以使用它。 使用它没有坏处。编译器不会抛出任何错误或警告。 如果小心创建,它将按预期工作。

但它可能会使您的代码不可读,并且还会增加缩进级别。

您可以创建一个具有循环的函数。它可以增加代码的可读性。

例如,


case 'i':
        func();
        break;

【讨论】:

    【解决方案2】:

    是的,你可以,但除了非常短的循环之外,它会迅速使你的代码变得不可读。

    在这种情况下,最好将循环放入一个函数中并从案例中调用它。这很简短,简洁且易于维护。

    另一个我觉得值得做的是

    switch (ch)
    {
       case 'i':
       {
          // do stuff
          MainLoop();
          break;
       } 
    }
    

    仅仅是因为它使花括号保持整洁,尽管这可能会惹恼很多人!

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多