public class MeiQu { //声明一个枚举类型·
public enum MyColor{red,green,white,brack};
public static void main(String[] args) {
// TODO Auto-generated method stub
MyColor m=MyColor.brack;//创建一个枚举类型的变量
// m=MyColor.red;
switch(m){
case red:
System.out.println("red");
// break;
case green:
System.out.println("green");
// break;
case white:
System.out.println("white");
// break;
case brack:
System.out.println("brack");
// break;
}
//可以直接将枚举类型打印出来
// System.out.print(m);
}}
//注意··此时我的break是注释掉的··但是可以跳出switch··
//但是··当我把这句// m=MyColor.red;的注释去掉时·也就是说·我改变m的值的时候·就跳不出switch了··需要用到break语句··为什么会有这个不同?

解决方案 »

  1.   

    switch语句将从与选项值相匹配的case标签处开始执行直到遇到break 或者执行到switch语句的结束处为止
    brack时 从case brack: 处开始 就输出 System.out.println("brack");
    red时 就会输出所有的System.out.println
      

  2.   

    java的switch控制语句,是这样规定的,如果在某个入口点(case子语句)匹配成功,那么程序将进入该入口,随后执行该块中所定义的行为,当执行完时,遇见break语句,将跳出整个switch语句,如果没有遇见,将会从上到下,顺序进入下一个入口点,直到遇到break语句,return或是整个switch语句执行结束。