Java switch 详解
switch 语句由一个控制表达式和多个case标签组成。
switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
default在当前switch找不到匹配的case时执行。default并不是必须的。
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
| |目录
1语法格式
|
1
2
3
4
5
6
7
8
9
10
11
|
switch (表达式) {case 条件1: 语句1; break;case 条件2: 语句2; break;...default: 语句;} |
2使用示例
int类型switch示例
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int i = 3;switch (i) {case 1: System.out.println(1); break;case 2: System.out.println(2); break;case 3: System.out.println(3); break;default: System.out.println(0);} |
枚举(Enum)类型switch示例
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package net.xsoftlab.baike;public class TestSwitch { static enum E { A, B, C, D } public static void main(String args[]) { E e = E.B; switch (e) { case A: System.out.println("A"); break; case B: System.out.println("B"); break; case C: System.out.println("C"); break; case D: System.out.println("D"); break; default: System.out.println(0); } }} |
String类型switch示例
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
String str = "C";switch (str) {case "A": System.out.println("A"); break;case "B": System.out.println("B"); break;case "C": System.out.println("C"); break;default: System.out.println(0);} |
3break
break在switch中用于结束当前流程。
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
忘记写break的陷阱
示例:
|
1
2
3
4
5
6
7
8
9
10
11
|
int i = 2;switch (i) {case 1: System.out.println(1);case 2: System.out.println(2);case 3: System.out.println(3);default: System.out.println(0);} |
输出结果:
|
1
2
3
|
230 |
巧用break
实例:输出2015年指定月份的最大天数
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
int year = 2015;int month = 8;int day = 0;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12: day = 31; break;case 2: day = 28; break;case 4:case 6:case 9:case 11: day = 30; break;}System.out.println(day); |
4default
default在当前switch找不到匹配的case时执行。default并不是必须的。
示例:
|
1
2
3
4
5
6
7
8
9
|
int x = 0;switch (x) {case 1: System.out.println(1);case 2: System.out.println(2);default: System.out.println("default");} |
输出结果:
|
1
|
default |
Java switch 详解的更多相关文章
- Java Annotation详解 理解和使用Annotation
系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...
- Java IO 详解
Java IO 详解 初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正, ...
- java关键字(详解)
目录 1. 基本类型 1) boolean 布尔型 2) byte 字节型 3) char 字符型 4) double 双精度 5) float 浮点 6) int 整型 7) long 长整型 8) ...
- Java内部类详解
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...
- 黑马----JAVA迭代器详解
JAVA迭代器详解 1.Interable.Iterator和ListIterator 1)迭代器生成接口Interable,用于生成一个具体迭代器 public interface Iterable ...
- C++调用JAVA方法详解
C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...
- Java虚拟机详解----JVM常见问题总结
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- [转] Java内部类详解
作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
随机推荐
- Ubuntu 16.04下搭建kubernetes集群环境
简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...
- Angularjs $http.post
$http.post 采用postJSON方式发送数据到后台. 如果不需要发送json格式数据,序列化成&连接的字符串,形如:"a=1&b=2",最终完整的前端解决 ...
- CA证书的办理
北京市地方税务局与北京数字证书认证中心(Beijing Certificate Authority ,简称BJCA)合作, 在北京市地方税务局网上纳税及其他网上业务系统中使用BJCA数字证书, 北京数 ...
- nyoj 15 括号匹配(2)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述 给你一个字符串,里面只包含"(",")","[" ...
- js中如何判断一个字符串包含另外一个字符串?
js中判断一个字符串包含另外一个字符串的方式比较多? 比如indexOf()方法,注意O是大写. var test="this is a test"; if(test.indexO ...
- js 去html 标签
var stylereg = /style\=".+?"/g //去style样式 var alltagreg = /<[^>]*>/g //去除全部标签 var ...
- js监听 window.open 关闭事件
转载自:http://blog.csdn.net/hanshileiai/article/details/41346729 首先创建一个新的对象,这将打开一个弹出这样的: var winObj = w ...
- thinkphp 如何调用百度echarts 数据报表插件
echarts官网网址:http://echarts.baidu.com/ echarts源码地址:http://echarts.baidu.com/build/echarts-2.2.7.zip ...
- C++ c++与C语言的区别(三目运算符,const修饰符)
//区别⑦:三目运算符(C++版本) #include<iostream> using namespace std; //三目运算符 C语言返回变量的值 C++语言是返回变量本身 void ...
- ubuntu vnc安装
VNC(Virtual Network Computing),为一种使用RFB协议的屏幕画面分享及远程操作软件.此软件借由网络,可发送键盘与鼠标的动作及即时的屏幕画面. 1. 安装vnc服务器 sud ...