为什么我不能在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
。
因为你有一个循环之外的continue
。 continue
是跳回到循环的开头,但是在该代码中没有任何循环。 你想要打破一个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);} }