Java入门 - 语言基础 - 11.switch_case
原文地址:http://www.work100.net/training/java-switch-case.html
更多教程:光束云 - 免费课程
switch_case
序号 | 文内章节 | 视频 |
---|---|---|
1 | 概述 | - |
请参照如上章节导航
进行阅读
1.概述
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);
}
}
以上代码编译运行结果如下:
良好
你的等级是 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");
}
}
}
以上代码编译运行结果如下:
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
上一篇:条件语句
下一篇:Number和Math类
如果对课程内容感兴趣,可以扫码关注我们的
公众号
或QQ群
,及时关注我们的课程更新
Java入门 - 语言基础 - 11.switch_case的更多相关文章
- Java入门 - 语言基础 - 03.基础语法
原文地址:http://www.work100.net/training/java-basic-syntax.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 1 第一个Jav ...
- Java入门 - 语言基础 - 12.Number和Math类
原文地址:http://www.work100.net/training/java-number-math.html 更多教程:光束云 - 免费课程 Number和Math类 序号 文内章节 视频 1 ...
- Java入门 - 语言基础 - 01.Java简介
原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 ...
- Java入门 - 语言基础 - 14.String类
原文地址:http://www.work100.net/training/java-string.html 更多教程:光束云 - 免费课程 String类 序号 文内章节 视频 1 概述 2 创建字符 ...
- Java入门 - 语言基础 - 16.数组
原文地址:http://www.work100.net/training/java-array.html 更多教程:光束云 - 免费课程 数组 序号 文内章节 视频 1 概述 2 声明数组变量 3 创 ...
- Java入门 - 语言基础 - 18.正则表达式
原文地址:http://www.work100.net/training/java-regular-expression.html 更多教程:光束云 - 免费课程 正则表达式 序号 文内章节 视频 1 ...
- Java入门 - 语言基础 - 19.方法
原文地址:http://www.work100.net/training/java-method.html 更多教程:光束云 - 免费课程 方法 序号 文内章节 视频 1 概述 2 方法的定义 3 方 ...
- Java入门 - 语言基础 - 22.异常处理
原文地址:http://www.work100.net/training/java-exception.html 更多教程:光束云 - 免费课程 异常处理 序号 文内章节 视频 1 概述 2 Exce ...
- Java入门 - 语言基础 - 02.开发环境配置
原文地址:http://www.work100.net/training/java-environment-setup.html 更多教程:光束云 - 免费课程 开发环境配置 序号 文内章节 视频 1 ...
随机推荐
- 从http到https--phpStudy2018
0. 将SSL证书解压到以下目录,申请方式见 百度 Apache/cert/ 分别更名为 my_public.crt my.key my_chain.crt 1. phpStudy->其它选项菜 ...
- H3C TFTP文件传输过程
- H3C通过端口ID决定端口角色
- springBoot中使用使用junit测试文件上传,以及文件下载接口编写
本篇文章将介绍如何使junit在springBoot中测试文件的上传,首先先阅读如何在springBoot中进行接口测试. 文件上传操作测试代码 import org.junit.Before; im ...
- 2019-4-29-C#-从-short-转-byte-方法
title author date CreateTime categories C# 从 short 转 byte 方法 lindexi 2019-4-29 12:8:39 +0800 2019-01 ...
- H3C使用ping命令
- vue-learning:19 - js - filters
filters 基本使用 仅限在插值{{}}和v-bind指令中使用 管道符|分隔 链式调用 传入参数 全局注册和局部注册 纯函数性质(不能使用this) 基本使用 我们看下之前用计算属性实现的例子, ...
- swiper 使用参考 禁止手动滑动 监听事件
最外层容器加类名 swiper-no-swiping 监听切换事件 onTransitionEnd: function(swiper){ console.log('过渡结束'); }
- 第二阶段:2.商业需求文档MRD:1.M版本管理
版本管理的例子.V=Version.注意大中小版本的区分.V1.2.2 第一个数字1就是大版本 中间的2就是中版本 末尾的2就是小版本.大版本就是方向的变更,比如我的用户之前主要是面向男性,现在要面向 ...
- Go处理PDF
工作中经常会遇到一些pdf文件处理的问题,一千种pdf有一千种处理方式,每次都是绞尽脑汁和这些pdf战斗到底. 本人又是一个gopher,所以这篇文章会以一个goper的视角,列举一下我所经历过的每一 ...