《Java从入门到精通》“循环结构 “学习心得11

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

目录

一、Java switch case 语句

语法

实例


一、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,判断是否继续输出,或是跳出判断。

    实例

    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);
       }
    }

    image.gif

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

    良好

    你的等级是 C

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

    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");
          }
       }
    }

    image.gif

     

    相关文章
    |
    8天前
    |
    存储 SQL 小程序
    JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
    这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
    15 2
    JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
    |
    8天前
    |
    小程序 Oracle Java
    JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
    这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
    21 0
    JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
    |
    10天前
    |
    前端开发 Java 应用服务中间件
    Javaweb学习
    【10月更文挑战第1天】Javaweb学习
    21 2
    |
    13天前
    |
    存储 缓存 Java
    【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
    【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
    27 1
    |
    13天前
    |
    存储 搜索推荐 算法
    【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
    【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
    18 1
    |
    13天前
    |
    算法 Java API
    【用Java学习数据结构系列】对象的比较(Priority Queue实现的前提)
    【用Java学习数据结构系列】对象的比较(Priority Queue实现的前提)
    23 1
    |
    13天前
    |
    Java
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    23 1
    |
    6天前
    |
    存储 算法 Java
    带你学习java的数组军队列
    带你学习java的数组军队列
    24 0
    |
    9天前
    |
    Java 大数据 开发工具
    java学习——环境准备(1)
    java学习——环境准备(1)
    21 0
    |
    13天前
    |
    存储 算法 Java
    【用Java学习数据结构系列】用堆实现优先级队列
    【用Java学习数据结构系列】用堆实现优先级队列
    26 0