好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java switch case 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。


语法

switch case 语句语法格式如下:


switch(expression){

    case value :

       //语句

       break; //可选

    case value :

       //语句

       break; //可选

    //你可以有任意数量的case语句

    default : //可选

       //语句

}

switch case 语句有如下规则:


switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。


switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。


case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。


当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。


当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。


switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。


switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。


实例

Test.java 文件代码:

public class Test {

   public static void main(String args[]){

      //char grade = args[0].charAt(0);

      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

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


Test.java 文件代码:

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 的值都会输出。


Test.java 文件代码:

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 语句则会跳出判断。


Test.java 文件代码:

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 switch case 语句的详细内容...

  阅读:34次

上一篇

下一篇

第1节:Java 方法    第2节:Java 教程    第3节:Java 简介    第4节:Java 开发环境配置    第5节:Java 基础语法    第6节:Java 对象和类    第7节:Java 基本数据类型    第8节:Java 变量类型    第9节:Java 修饰符    第10节:Java 运算符    第11节:Java 循环结构 – for, while 及 do…while    第12节:Java 条件语句 – if…else    第13节:Java switch case 语句    第14节:Java Number & Math 类    第15节:Java Character 类    第16节:Java String 类    第17节:Java StringBuffer 和 StringBuilder 类    第18节:Java 数组    第19节:Java 日期时间    第20节:Java 正则表达式    第21节:Java 流(Stream)、文件(File)和IO    第22节:Java Scanner 类    第23节:Java 异常处理    第24节:Java 继承    第25节:Java 重写(Override)与重载(Overload)    第26节:Java 多态    第27节:Java 抽象类    第28节:Java 封装    第29节:Java 接口    第30节:Java 枚举(enum)    第31节:Java 包(package)    第32节:Java 数据结构    第33节:Java 集合框架    第34节:Java ArrayList    第35节:Java LinkedList    第36节:Java HashSet    第37节:Java HashMap    第38节:Java Iterator(迭代器)    第39节:Java Object 类    第40节:Java 泛型    第41节:Java 序列化    第42节:Java 网络编程    第43节:Java 发送邮件    第44节:Java 多线程编程    第45节:Java Applet 基础    第46节:Java 文档注释    第47节:Java 实例    第48节:Java 8 新特性    第49节:Java MySQL 连接    第50节:Java 9 新特性