Java-Runoob:Java switch case

ylbtech-Java-Runoob:Java switch case
1.返回顶部

1、

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

2、

2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部

1、

http://www.runoob.com/java/java-switch-case.html

2、

6.返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/storebook/p/10612705.html

时间: 2024-10-10 05:53:21

Java-Runoob:Java switch case的相关文章

JAVA虚拟机:JAVA体系结构

JAVA体系结构:JAVA设计语言,JAVA Class文件,JAVA API,JAVA虚拟机. 一.java虚拟机: 1.java虚拟机的主要任务是装载class我呢间并且执行其中的字节码.java虚拟机包含一个类装载器,他可以从程序和API中装载class文件. JAVA API中只有程序执行时那些需要的类才能被装载.字节码由执行引擎来执行. Java虚拟机:1.一种简单的执行引擎,是一次性解释字节码.2.执行引擎很快,消耗内存,在这种情况下,第一次被执行的字节码会被翻译成本地机器代码, 编

Java-杂项-java.nio:java.nio

ylbtech-Java-杂项-java.nio:java.nio java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络. 1.返回顶部 1. 中文名:java非阻塞式IO 外文名:java nio 缓冲区:数据容器 特    性:Channel,Buffer,Selector 简    称:nio 目    的:提供非阻

Java笔记:Java 流(Stream)、文件(File)和IO

更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. 输入输出流 简介 一个流被定义为一个数据序列.输入流用于从源读取数据,输出流用于向目标写数据. 下图是一个描述输入流和输出流的类层次图: 在java.io包中操作文件内容的主要有两大类:字节流.字符流,两类都分为输入和输出操作. 在字节流中输出数据主要是使用

java基础:java环境,第一个Java程序,java的数组

java环境: 1. 什么是字节码和虚拟机? 2. 环境变量的设置 3.一些常用的java命令 4. 计算机如何运行java程序? 5. java的垃圾回收器 6. java的基本数据类型及转换 举例:第一个Java程序 Java的数组: 1. 一维数组 数组的声明 数组分配空间及初始化 数组的长度 两个数组之间的拷贝:System.arraycopy(array1,start,array2,start,length) 2. 二位数组 二维数组的声明及初始化

Java Se:Java Security

Java API中有很多都使用了SecurityManager,这到底是什么玩意?最近看公司的产品的源码,也有不少SecurityManager.AccessControlContext等相关的代码,只是知道它们与安全有关,但是它们到底是怎么一回事呢?Spring也有一个Security框架,与Java Security有什么关联呢?另外有经验的开发人员调试程序时可能会查看ProtectionDomain.CodeSource,这两者又是什么呢? Java Sandbox 提到Java Secu

Java初学者:java是如何在命令行下编译运行程序的

我们上文书说到,我们首先安装Java,然后设置Java环境,然后编译运行了一个简单的Java程序,在命令行模式下显示了一个“Hello baby”.那么,为什么呢?发生了什么呢? 首先,下载安装Java就不用问为什么了对吧?所谓巧妇难为无米之炊,没有Java却想用,这不可能的. 其次,为什么我们要那样设置Java的运行环境呢? 因为,目前为止,我只是想在命令行下编译运行java程序,这样一来,你就需要让命令行模式识别java的命令.而命令行下能自动识别的命令,必须我们手动的把命令的路径添加进去.

Java问题解决:Java compiler level does not match the version of the installed Java project facet.

问题原因:Java编译器级别与Facted Project 中的Java 版本设定不匹配. 解决办法:将两者设置一致 1.查看Java compiler level : 选中项目右键properties->Java Complier:由图可知compiler level是1.8 2.修改Project Facets的java值,使其与java complier相同: 搞定!

02 java 基础:java 文件名与类名关系 CLASSPATH

java 类修饰符:通常情况下使用 public 修饰,此时,java 强制要求 .java 文件名需与该 public 修饰类名一致,否则无法编译通过.如若没有加修饰符,文件名与类名可无任何关联. .java 文件建议仅声明单个类,不要在同一个类文件,创建多个类. PATH 添加时,可旋转在当前 PATH 目前最前面添加,防止中间有目录影响. CLASSPATH 为 java 命令运行程序时,查找 .class 路径,添加 CLASSPATH 时,. 代表当前目录. 使用 IDEA 添加 pr

Java基础:Java的反射机制

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.[翻译于 官方文档] 本篇将从以下几个方面讲述反射的知识: calss的使用 方法的反射 构造函数的反射 成员变量的反射 一.什么是class类 在面向对象的世界里,万物皆对象.类是对象,类是java.lang.Class类的实例对象.另外class类只有java虚拟机才能new出来.任何一个类都是

Java Security:Java加密框架(JCA)简要说明

加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以一个安全的方式生成数据对象(KeyStore或Certificate),封装(压缩)密钥(可以用于加密操作). Java Security API中,一个engine class就是定义了一种加密服务,不同的engine class提供不同的服务.下面就来看看有哪些engine class: 1)M