你能在C语言的switch语句中的case中使用while循环吗?

时间:2016-03-27 21:28:58

标签: c loops switch-statement case

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

的内容
case 'i':
    do
    {
        root=insert(root,code[1]);
        scanf("%s",code);
    }while (code[0]=='i');
    break;
在C?感谢您的回答,如果这是一个愚蠢的问题,请再次抱歉。祝你有愉快的一天:)

2 个答案:

答案 0 :(得分:0)

是的,你可以,但对于非常短的循环,它可以迅速使你的代码不可读。

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

另一个我觉得值得做的是

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

只是因为它可以使花括号整洁干净,但这可能会让很多人烦恼!

答案 1 :(得分:0)

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

但它可能会使您的代码无法读取,而且还会增加缩进的级别。

您可以创建一个具有循环功能的函数。它可以提高代码的可读性。

例如,


case 'i':
        func();
        break;