第6节switch语句

switch语句格式

  switch(表达式){

    case 值1:

      语句体1;

      break;

    case 值1:

      语句体1;

      break;

    ...

    default:

      语句体n+1;

      [break;]  可选的 

  }

  格式说明:

  表达式:取值为byte,short,int ,char,JDK5以后可以是枚举,JDK7以后可以是String。

  case:后面跟的是要和表达式进行比较的值。

  break:表示中断,结束的意思,用来结束switch语句。

  default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

 

  执行流程:

  1、首先计算表达式的值。

  2、一次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,

    在执行的过程中,遇到break就会结束。

  3、如果所有的case后面的值和表达式的值都不匹配,就会执行default里面

    的语句体,然后程序结束掉。

  

import java.util.Scanner;

public class SwitchDemo{
    public static void main(String[] args){
        //需求:键盘录入一个星期数(1,2,...7),输出对应的是星期一,星期二,...星期日
        Scanner sc=new Scanner(System.in);
        
        System.out.println("请输入一个星期数(1-7):");
        int week=sc.nextInt();//week[wik]星期
        
        switch(week){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;                
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("输入数字有误,请重新输入");
                break;
        }
    }
}

 

案例:春夏秋冬

  需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于

    哪个季节,并输出。

  春:3、4、5

  夏:6、7、8

  秋:9、10、11

  冬:1、2、12

  

  分析:

  1、键盘录入月份数据,使用变量接收。

  2、多情况判断,这里采用switch语句实现。

  3、在每种情况中,完成输出对应的季节。

  下面代码用 case穿透 原理:

import java.util.Scanner;

public class SwitchDemo02{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        
        System.out.println("请输入1-12月份任意一个月份的数字");
        int month=sc.nextInt();
        
        switch(month){
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;            
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;            
            
            default:
                System.out.println("输入月份有误!");
                break;
        }
    }
}

  注意事项:

  在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,

  在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch

  语句结束。

 

posted @ 2021-01-17 21:09  Testtext  阅读(100)  评论(0)    收藏  举报