服务器之家

服务器之家 > 正文

java中的switch case语句使用详解

时间:2020-07-22 11:53     来源/作者:鸿燕藏锋

java中的switch case语句

switch-case语句格式如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
switch(变量){
case 变量值1:
 //;
 break;
case 变量值2:
 //...;
 break;
 ...
case default:
 //...;
 break;
}

swtich()变量类型只能是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况:

情况一:若未找到,则执行默认的case。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
int i = 5;
  switch(i){
  case 0:
   System.out.println("0");break;
  case 1:
   System.out.println("1");break;
  case 2:
   System.out.println("2");break;
  default:
   System.out.println("default");break;
  }
 
输出:default

情况二:当每一个case都不存在break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,匹配不成功则返回默认case。

?
1
2
3
4
5
6
7
8
9
10
11
12
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的返回值。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int i = 2;
  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");
  }
 
输出:2
  default

情况四:若当前匹配成功的case不存在break,则从当前case开始,依次返回后续case的返回值,直到遇到break,跳出判断。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int i = 2;
  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");
  }
 
 
输出:2
  3

因此switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。

还需注意的是case后面只能是常量,可以是运算表达式,但一定要符合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM依然会报错。

到此这篇关于java中的switch case语句使用详解的文章就介绍到这了,更多相关java中的switch case语句内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/yjd_hycf_space/p/8039379.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
返回顶部