Java switch 详解

Java switch 详解switch语句由一个控制表达式和多个case标签组成。switch控制表达式支持的类型有byte、short、char、int、enum(Java5)、String(Java7)。swi

大家好,又见面了,我是你们的朋友全栈君。

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语法格式

Java | 
复制

1
2
3
4
5
6
7
8
9
10
11
switch 
(表达式) {
case 
条件
1
:
    
语句
1
;
    
break
;
case 
条件
2
:
    
语句
2
;
    
break
;
...
default
:
    
语句;
}

2使用示例

int类型switch示例

Java | 
复制

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示例

Java | 
复制

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示例

Java | 
复制

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的陷阱

示例:

Java | 
复制

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

输出结果:

Java | 
复制

1
2
3
2
3
0

巧用break

实例:输出2015年指定月份的最大天数

Java | 
复制

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并不是必须的。

示例:

Java | 
复制

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

输出结果:

Java | 
复制

1
default

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154345.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下svn服务器迁移

    Linux下svn服务器迁移Linux下svn服务器迁移1.介绍迁移方式:1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案。2.主要迁移方式:svnadmindumpsvnadminhotcopysvnsync3.【svnadmindump】是官方推荐的备份方式。优点:比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。缺点:如果版本比较大,如版本数增长到数…

    2022年7月19日
    14
  • VS2010 旗舰版序列号

    VS2010 旗舰版序列号YCFHQ-9DWCY-DKV88-T2TMH-G7BHP转载于:https://www.cnblogs.com/canyuexingchen/p/3229530.html

    2022年7月20日
    14
  • pycharm安装中文包为什么老是失败_安卓安装包格式

    pycharm安装中文包为什么老是失败_安卓安装包格式PyCharm版本:PyCharm2020.21.打开PyCharm进入File->Settings…2.找到Plugins并点击(挥着在搜索框输入Plugins并选择Plugins菜单)3.在Marketplace的搜索框输入chinese4.可以看到Chinese(Simplified)LanguagePackEAP安装包,点击Install安装5.等待安装完成,点击RestartIDE重启IDE窗口6.选择Re

    2022年8月28日
    1
  • adb 环境变量配置 无效

    今天adb日常抽风。怎么搞就是打不开。由于是新做的系统。所以还没配置adb的环境变量。要打adb还要切到指定文件夹下太麻烦,于是就打算设置下adb的系统变量。结果设置了很多次。发现在cmd中打adb还是提示不是内部命令。也就是说提示我系统变量没有添加成功。重启了几遍有好好仔细检查了下分好和路径。都没问题。最后突然灵光一闪。Win+R输入cmd木有直接回车进入命令行。而是右键了上面的cmd…

    2022年4月9日
    38
  • 2021版idea激活码99年_在线激活

    (2021版idea激活码99年)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~K…

    2022年3月22日
    125
  • 动态获取地址×××解决方案

    动态获取地址×××解决方案

    2021年8月19日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号