java中switch选择结构

switch  case可以翻译为判断变量xxx,如果是x1 则执行xxxjava语句;如果是x2 则执行xxjava语句。

1、基本语法

        switch(xxx变量){
            
            case 结果1:
                System.out.println("结果是1");
                break;  //每个case判断,都需要添加结束语句,否则会继续下面的case
                
            case 结果2:
                System.out.println("结果是2");
                break;
            
            //都匹配不上,选择default    
            default:
                System.out.println("结果是10");

注意事项:

  1、switch判断变量,变量只能是int/String数据类型(byte/short/char可以自动转换为int,所以也可以传入;long数据类型必须强制转换为int才可以)

  2、case条件可以进行合并处理case 结果1: case 结果2: case 结果3:

  3、每个case对switch变量判断结果后,执行完成java语句后,必须break/或者有return语句结束,否则会继续进行下一个case判断并且不论是否满足条件都会执行其中的语句;这种叫穿透

  4、如果所有的case条件都不匹配,则进行default

2、switch判断变量,变量只能是int/String数据类型(byte/short/char可以自动转换为int,所以也可以传入;long数据类型必须强制转换为int才可以)

        //判断字符串
        String a1 ="jesse";

        switch(a1){

            case "":
                System.out.println("结果是1");
                break;

            case "啊":
                System.out.println("结果是2");
                break;

            //都匹配不上,选择default
            default:
                System.out.println("结果不是1,也不是2");

        }

//判断int类型
        int a1 =10;

        switch(a1){

            case 1:
                System.out.println("结果是1");
                break;

            //都匹配不上,选择default
            default:
                System.out.println("结果不是1");

        }

 //long类型强制转换为int
        long a1 =10;

        switch((int)a1){

            case 1:
                System.out.println("结果是1");
                break;

            //都匹配不上,选择default
            default:
                System.out.println("结果不是1");

        }

3、case条件可以进行合并处理case 结果1: case 结果2: case 结果3:

        //long类型强制转换为int
        int a1 =10;

        switch(a1){

            case 1: case 2: case 3:
                System.out.println("结果是1/2/3");
                break;

            //都匹配不上,选择default
            default:
                System.out.println("结果不是1/2/3");

        }

4、switch case中的穿透

如果满足某个case条件,并且改case没有编写结束语句(break/return),那么会继续执行下面的case(不会判断是否满足条件)直到遇到break/return/结束

如果上一个case没有满足条件,即使没有break,不会进入所以也不会穿透到下个case

//穿透
        int a1 =10;

        switch(a1){

            case 10:
                System.out.println("结果是10");  //满足第一个条件,执行此语句

            case 2:
                System.out.println("结果是2");   //上一个case没有break结束,所以会继续执行此语句

            //都匹配不上,选择default
            default:
                System.out.println("结果不是1/2/3"); //上一个case没有break结束,同样会继续执行此语句

        }

//执行结果
结果是10
结果是2
结果不是1/2/3

//不穿透
int a1 =10;

switch(a1){

    case 1:
        System.out.println("结果是1");  //不满足case,不会进入

    case 2:
        System.out.println("结果是2");   //上一个case没有进入,这个不满足所以不会执行

    //都匹配不上,选择default
    default:
        System.out.println("结果不是1/2"); //上面的都没有执行,所以执行default

}
//执行结果
结果不是1/2
原文地址:https://www.cnblogs.com/jesse-zhao/p/14673660.html