switch语句的基本使用

29 阅读2分钟

引入概念:之前写代码,代码都是默认从上到下依次执行代码,在现实开发过程中肯定会根据不同情况做不同判断,那么能不能通过不同的条件判断执行对应的代码,而不是从上到下依次执行

switch(选择语句)的基本使用

1:格式:
switch(变量){
case 常量值2:
执行语句2;
break;

case 常量值3:
执行语句3;
break;

case 常量值4:
执行语句4;
break;

case 常量值5:
执行语句5;
break
...
default:
执行语句n;
break;
}

2:执行流程:

用变量值与case常量值匹配,匹配成功则执行对应语句,都不匹配则执行default语句

3:break关键字:

break作用:结束整个switch语句,防止case穿透

4:数据类型限制:支持byte、short、int、char、枚举和String类型,不支持float/double(因精度问题)

package Random;


import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int data = sc.nextInt();
        switch (data){
            case 1:
                System.out.println("床前明月光");
                break;
            case 2:
                System.out.println("疑是地上霜");
                break;
            case 3:
                System.out.println("举头望明月");
                break;
            case 4:
                System.out.println("低头思故乡");
                break;
            default:
                System.out.println("下面没有了");
                break;

        }
    }
}

image.png

case的穿透性

1:现象特征:当case分支缺少break时,程序会继续执行后续case的代码,知道遇到break或switch执行完成

package Random;


import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int data = sc.nextInt();
        switch (data){
            case 1:
                System.out.println("床前明月光");
            case 2:
                System.out.println("疑是地上霜");
            case 3:
                System.out.println("举头望明月");
            case 4:
                System.out.println("低头思故乡");
                break;
            default:
                System.out.println("下面没有了");
                break;

        }
    }
}

image.png

若case4也无break,会继续执行default语句

例题:输入月份出季节

基本实现:通过Scanner获取用户输入的月份,使用switch语句判断季节

代码结构:每个case后需要添加break语句防止穿透

季节划分:

12月、1月、2月:冬季

3月、4月、5月:春季

6月、7月、8月:夏季

9月、10月、11月:秋季

package switch1;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份");
        int data = sc.nextInt();
        switch (data){
            case 3,4,5:
                System.out.println("春天");
                break;
            case 6,7,8:
                System.out.println("夏天");
                break;
            case 9,10,11:
                System.out.println("秋天");
                break;
            case 12,1,2:
                System.out.println("冬天");
                break;
            default:
                System.out.println("请输入1-12内的月份");
        }
    }
}