欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

switch 用法解读

程序员文章站 2022-07-10 18:40:53
switch case 判断表达式的一种,类似于 if elseswitch() 方法支持数据类型:JDK1.6(char,byte,short,int),JDK1.7(char, byte,short,int, String)case 表达式可以有多个 类似于 else ifswitch case 用法限制每个case语句要通过break/return结束语句最后一个分支要是用default 结束switch 语句支持多个case分支,执行一个判定逻辑switch cas......

 

switch case  判断表达式的一种,类似于 if else

switch() 方法支持数据类型:JDK1.6(char,byte,short,int),JDK1.7(char, byte,short,int, String)

case 表达式可以有多个 类似于 else if

switch case 用法限制

  1. 每个case语句要通过break/return结束语句
  2. 最后一个分支要是用default 结束switch 语句
  3. 支持多个case分支,执行一个判定逻辑

switch case 错误用法解析

error code 1. case 表达式执行结束没有 break/return 结束

public static void swithcTest(int a){
   
switch(a){
       
case 1:
            System.out.println(
1);
       
case 2:
            System.out.println(
2);
       
case 3:
            System.out.println(
3);
    }

}

//运行方法

swithcTest(2);
//打印执行结果

2

3

期望结果打印2完成结束语句,但是程序未结束,并且执行 case 3 表达式

Javap -c xxxx.class

switch 用法解读

switch case 2 表达式执行完成后,没有结束,继续执行 case 3 表达式,执行后return 结束语句 

正确写法

public static void swithcTestReturn(int a){

    switch(a){

        case 1:

            System.out.println(1);

            return;

        case 2:

            System.out.println(2);

            return;

        case 3:

            System.out.println(3);

            return;

        default:

            System.out.println(4);

            return;

    }

}

 

//运行方法

swithcTest(2);
//打印执行结果
2

Javap -c xxxx.class

 

switch 用法解读

 

当 switch case 2 表达式执行完成,return 结束语句

 

error code 2. default 使用位置错误

public static void swithcTestDefault(int a){

    switch(a){

        case 1:

            System.out.println(1);

            return;

        default:

            System.out.println(4);

        case 2:

            System.out.println(2);

            return;

        case 3:

            System.out.println(3);

            return;

    }

}

 

//运行方法

swithcTestDefault(4);
//打印执行结果
4
2

期望结果打印4完成结束语句,但是程序未结束,并且执行 case 2 表达式后,return结束

Javap -c xxxx.class

 

switch 用法解读

 

default:36 代码命令行至50行  (46-50行属于case 2 表达式的命令行)

default默认表达式没有在43行执行后 break/return结束,继续往下执行 case 2 表达式

执行到50行时return结束,所以打印结果 4  2

正确写法

public static void swithcTestReturn(int a){

    switch(a){

        case 1:

            System.out.println(1);

            return;

        case 2:

            System.out.println(2);

            return;

        case 3:

            System.out.println(3);

            return;

        default:

            System.out.println(4);

            return;

    }

}

//运行方法

swithcTestDefault(4);
//打印执行结果
4

if else 案例编码:

public static void ifTest(int a){
   
if(a>1){
       
System.out.println(1);
    }
else if(a>2){
       
System.out.println(2);
    }
else {
       
System.out.println(a);
    }
}

javap -c xxxx.calss

switch 用法解读

 

总结:if  else 的每个分支执行完成后,会执行goto 结束语句 ,switch case 如果没有写break/return, 默认情况下会继续执行以下命令行

本文地址:https://blog.csdn.net/u014614478/article/details/109263395