3.5 switch语句

如果要根据一个值(数字或者字符)来判定应该执行哪条分支,不需要判断什么条件,这个时候,用switch语句更合适。switch语法如下:
switch(表达式){
    case a:…;
    break;
    case b:…;
    break;
    /*
    其他代码
     */
    default:…;
}
(1)switch需要大括号,不能省略;
(2)switch里面不是条件,是表达式,可以计算出值,这里只接受算术表达式、字符表达式或字符串;
(3)case后的常量(a、b)的类型和表达式的类型一致,这里执行多条语句不需要大括号;
(4)不允许两个case有相同的值;
(5)在case后面紧接着的是冒号,如果冒号后面没有任何语句,那么就执行紧接着的下一个case语句,直到遇到break;如果要形成多路逻辑,那么每个case语句最后都要写上break。
如果不写会怎样呢?我们用代码来说明,下面代码中,如果a是4,那么执行完case 4的语句后,就执行case 5;执行完case 5的语句后,就执行case 6,到这里打印出a,遇到了break,整个switch结束。没有break的case语句执行完,会继续执行下一条case,直到遇到break或者结束,不管后面的case有没有命中!
switch(a){
    case 4:语句;
    case 5:语句;
    case 6:System.out.println(a);
    break;
}
(6)default是缺省,如果没有任何一个case命中,那么就直接执行default里面的代码。default不是必须的,可以没有。
下面来看一个具体的例子,运行一下看看什么效果:
public static void main(String[]args){
    System.out.println("请输入一个0到6的整数。");
    int a=new java.util.Scanner(System.in).nextInt();
    switch(a){
        case 0:System.out.println("Sunday");
        break;
        case 1:System.out.println("Monday");
        break;
        case 2:System.out.println("Tuesday");
        break;
        case 3:System.out.println("Wednesday");
        break;
        case 4:System.out.println("Thursday");
        break;
        case 5:System.out.println("Friday");
        break;
        case 6:System.out.println("Saturday");
        break;
        default:System.out.println("wrong number!");
    }
}