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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【软考】系统集成项目管理工程师(三)系统集成专业技术知识

    【软考】系统集成项目管理工程师(三)系统集成专业技术知识软考中级——系统集成项目管理工程师备考干货第三章:系统集成专业技术知识。

    2022年10月15日
    2
  • 因果图实例

    因果图实例软件测试黑盒测试

    2022年8月14日
    7
  • 【Java】Java队列Queue使用详解

    【Java】Java队列Queue使用详解Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了。Queue的实现类有LinkedList和PriorityQueue。最常用的实现类是LinkedList。

    2022年7月14日
    26
  • spfa(链式前向星)+dijkstra(链式前向星)

    spfa(链式前向星)+dijkstra(链式前向星)链式前向星链式前向星可以存图,它存图的方式是:将任意一个节点的所有临边按输入顺序依次连接起来将任意一个节点的所有临边按输入顺序依次连接起来将任意一个节点的所有临边按输入顺序依次连接起来然后头节点(数组)存的是最后一个临边的地址然后头节点(数组)存的是最后一个临边的地址然后头节点(数组)存的是最后一个临边的地址inthead[maxn];//head[i]中i是u->v中的u,he…

    2025年6月21日
    3
  • XML格式化的一段代码

    XML格式化的一段代码起因没有找到android有相关的工具类,又不要为了格式化个xml导入一个jar包。于是自己写了个xml格式化的代码。代码如下:/***格式化xml**@return*/publicStringformat(Stringstr){StringBufferbuffer=…

    2022年7月16日
    12
  • gis中char是什么字段_输入一个字符串统计字母个数

    gis中char是什么字段_输入一个字符串统计字母个数维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数 N,表示操作数。接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。输出格式对于每个询问指令 Q x,都要输出一个整数作为结果,表示 x 在集合中出现的次数。每个结果占一行。数据范围1≤N≤2∗104输入样例:5I abcQ abcQ ab

    2022年8月9日
    10

发表回复

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

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