为什么我不能在Java中的switch语句中使用’continue’?

为什么会出现以下代码:

class swi { public static void main(String[] args) { int a=98; switch(a) { default:{ System.out.println("default");continue;} case 'b':{ System.out.println(a); continue;} case 'a':{ System.out.println(a);} } System.out.println("Switch Completed"); } } 

给出错误:

继续循环

掉头是switch语句的标准行为,因此,在switch语句中使用continue是没有意义的。 continue语句仅用于for / while / do..while循环。

根据我对你的意图的理解,你可能想写:

 System.out.println("default"); if ( (a == 'a') || (a == 'b') ){ System.out.println(a); } 

我还建议您将默认条件放在最后。

编辑:不能在switch语句中使用continue语句。 (理想标记的) continue语句完全有效。 例如:

 public class Main { public static void main(String[] args) { loop: for (int i=0; i<10; i++) { switch (i) { case 1: case 3: case 5: case 7: case 9: continue loop; } System.out.println(i); } } } 

这将产生以下输出:0 2 4 6 8

continue -Statement可以在循环中使用,而不是在switch中使用。 你可能想要的是break

因为你有一个循环之外的continuecontinue是跳回到循环的开头,但是在该代码中没有任何循环。 你想要打破一个switch案例块的是关键字break (见下文)。

也没有必要将每个case块放在大括号内(除非你想要在其中包含本地范围的变量)。

所以有点像这样会更标准:

 class swi22 { public static void main(String[] args) { int a=98; switch(a) { default: System.out.println("default"); break; case 'b': System.out.println(a); break; case 'a': System.out.println(a); break; } System.out.println("Switch Completed"); } } 

还有一种思想流派认为default条件应始终在最后。 这不是一个要求,只是一个相当广泛使用的惯例。

continue内部开关?? !!! 只有break可以保持在开关内。

你的代码应该是,

 class swi22 { public static void main(String[] args) { int a=98; switch(a) { default:{ System.out.println("default");break;} case 'b':{ System.out.println(a); break;} case 'a':{ System.out.println(a);} } System.out.println("Switch Completed"); } } 

你不应该使用break而不是continue吗?

你正在使用continue你应该使用break

continue简单地直接移动到循环的下一次迭代。

break用于打破循环和切换。

使用break; 而不是continue;

继续:

 for(x = 0; x < 10; x++) { if(x == 3) continue; else DoIterativeWork(); } 

开关:

 switch(a) { default:{ System.out.println("default"); break;} case 'b':{ System.out.println(a); break;} case 'a':{ System.out.println(a);} }