[英]Can you use a while loop inside a case in switch statement in C?
这可能是一个非常愚蠢的问题,如果是的话,请原谅我,但是我之前一直在寻找答案,但没有发现任何东西。 是否有可能写类似
case 'i':
do
{
root=insert(root,code[1]);
scanf("%s",code);
}while (code[0]=='i');
break;
在C中? 感谢您的回答,如果这是一个愚蠢的问题,请再次表示歉意。 祝你今天愉快 :)
是的,您可以,尽管对于非常短的循环而言,它可以迅速使您的代码不可读。
在这种情况下,最好将循环放入函数中并从案例中调用它。 这是简短,简洁且易于维护的。
我觉得值得做的另一件事是
switch (ch)
{
case 'i':
{
// do stuff
MainLoop();
break;
}
}
仅仅因为它使花括号保持整洁,尽管这可能会使很多人感到烦恼!
如果您的项目有必要,则可以使用它。 使用它没有害处。 编译器不会抛出任何错误或警告。 如果精心创建,它将按预期工作。
但这可能会使您的代码不可读,也将增加缩进级别。
您可以创建一个具有循环的函数。 它可以提高代码的可读性。
例如,
case 'i':
func();
break;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.