【发布时间】:2020-04-23 15:17:40
【问题描述】:
代码如下:
#include <stdio.h>
int main ()
{
int menu=0;
while (menu!=3)
{
scanf ("%d", &menu);
switch (menu)
{
case 1:
{
printf ("Case 1\n");
continue;
}
case 2:
{
printf ("Case 2\n");
break;
}
}
printf ("This doesn't get printed by case 1\n");
}
return 0;
}
每次我把它设置为 1 时,printf 都不会出现,但除此之外,它运行良好。那么continue 和break 如何在loop 中为switch 工作?为什么break 不会打破循环?相反,它阻止了下一个案例的正确处理?但是continue 呢?需要明确的是,我实际上是在问它有什么不同以及它们实际上是如何工作的。注意:我在 java 中也做过这个(用 eclipse)。
【问题讨论】:
-
因为开关中的
break有特定的含义(结束当前的情况),而continue没有(所以它的意思就好像它在开关之外一样)。跨度> -
@Savior 不幸的是,不,我认为这与我询问用法的问题不同,为什么不同,原因正如我在这篇文章的正文中所说的那样。
-
@AndyTurner 所以你的意思是,破案是一种特殊的事情,就像“破案并走出开关”,而继续没有,所以它只会影响循环平时继续吗?
-
如果你不在 switch 中使用
break,它会进入下一个 case 标签。我们使用break来退出整个switch语句。
标签: c loops switch-statement continue