public class B {
public static void main(String Args[]){
int i =1 ,j =0;
switch(i){
default:j+=2;
case 2:j+=6;
case 4:j+=6;
case 0:j+=4;
}
System.out.println(j);
}
}
为什么会输出18了~~?
switch 能将i与[color=red][size=xx-large]每个[/size][/color]case 后的整数值进行比较!若发现相符的,就执行对应的语句!。若没有发现相符的,就执行default语句!
一般case语句后面都带有break结尾。但是break是可选的~。若省略break,就会[size=xx-large][color=red]继续执行后面的case语句[/color][/size],直到遇到一个break为止或者直到switch语句最后!
在以上程序中,i=1 将和2、4、0一一比较,没有发现和1相等的,则执行default 语句~~接着未遇到break关键字,[size=xx-large][color=red]继续执行后面的case语句[/color][/size]~~直到switch语句的最后!