【发布时间】:2011-02-01 01:53:05
【问题描述】:
为什么是下面的代码:
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");
}
}
给出错误:
在循环外继续
【问题讨论】:
-
语法上我也同意,但这背后的逻辑是什么,为什么不能在可以使用 break 的地方继续使用?
-
@abson:因为
continue和break有不同的用途,而break与switch和循环都相关,continue不是——没有“顶部” " 跳回。 -
对不起,我知道 switch 只是条件语句,而不是循环结构,是吗?
-
@abson:没错,
switch不是循环,而是索引查找(基本上是优化的 if/else/else/else,不允许重复条件)。 -
@Springrbua:对,只有当您使用
break时。如果你不这样做,它基本上是一个 goto,因为你跳转到匹配的案例,但是当你到达那个案例的结尾时,你继续下一个案例的逻辑,即使那个案例不匹配,等等直到你掉到switch的底部。
标签: java switch-statement continue