JAVA基础篇(10):分支控制结构之---Switch Case分支结构

Switch case分支结构

语法格式如下:

switch(表达式){ 
case value : //操作 
break; //可选,执行到break就会跳出switch case
case value : //操作 
break; //可选 ,执行到break就会跳出switch case
//你可以写任意数量的case语句 
default : //可选,default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
}
  1. case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
    当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  2. 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  3. switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

代码举例如下:

public class Test {
	   public static void main(String args[]){
	      char grade = 'C';
	 
	      switch(grade)
	      {
	         case 'A' :
	            System.out.println("优秀"); 
	            break;
	         case 'B' :
	         case 'C' :
	            System.out.println("良好");
	            break;
	         case 'D' :
	            System.out.println("及格");
	            break;
	         case 'F' :
	            System.out.println("你需要再努力努力");
	            break;
	         default :
	            System.out.println("未知等级");
	      }
	      System.out.println("你的等级是 " + grade);
	   }
	}

以上代码编译运行结果如下:

良好
你的等级是 C

如果grade=’B’,则会执行case B和case C,并输出如下内容(这种现象叫case穿透):

良好
你的等级是 B

如果 case 语句块中没有 break 语句,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case也就是default。

public class Test {
	   public static void main(String args[]){
	      int i = 5;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代码编译运行结果如下:

default

如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。

public class Test {
	   public static void main(String args[]){
	      int i = 1;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代码编译运行结果如下:

1
2
default

如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。

public class Test {
	   public static void main(String args[]){
	      int i = 1;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         case 3:
	            System.out.println("3"); break;
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代码编译运行结果如下:

1
2
3

上一篇:JAVA基础篇(09):分支控制结构之—if分支结构
下一篇:


软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
有意可加Q群 908417285 交流学习。
乾坤未定,你我皆是黑马
原创文章 84 获赞 86 访问量 14万+

猜你喜欢

转载自blog.csdn.net/qq_36396763/article/details/104855822