当前位置:   article > 正文

Java中switch的四种用法_java switch

java switch

总共有四种不同形式的switch。两种是switch语句,两种是switch表达式,表达式会生成一个值。switch表达式没有“直通式”行为。

表达式,无直通行为

int numLetters
numLetters = switch(seasonName){
	case "Spring" ->{
		System.out.println("spring time");
		yield 6;
		}
	case "Summer","Winter" -> 6;
	case "Fall" -> 4;
	default -> -1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

语句,无直通行为

switch(seasonName){
	case "Spring" -> {
		System.out.println("spring time");
		numLetters = 6;
		}
	case "Summer","Winter" -> numLetters = 6;
	case "Fall" -> numLetters = 4;
	default -> numLetters = -1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

表达式,有直通行为(Java 14引入)

int numLetters
numLetters = switch(seasonName){
	case "Spring":
		System.out.println("spring time");
	case "Summer","Winter":
		yield 6;
	case "Fall":
		yield 4;
	default:
		yield -1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

语句,有直通行为(“经典”形式)

switch(seasonName){
	case "Spring":
		System.out.println("spring time");
	case "Summer","Winter":
		numLetters = 6;
		break;
	case "Fall":
		numLetters = 4;
		break;
	default:
		numLetters = -1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意

1.switch()括号内seasonName,应与case后常量类型保持一致,或者是可以自动转换成可以互相比较的类型。

2.case标签可以是:类型为char、byte、short或int的常量表达式;枚举常量enum;字符串字面量String;多个字符串用逗号分隔。

3.case子句中的值必须是常量,不能是变量。

4.在语句中,default是可选的。

5.break和yield语句用来在执行完一个case分支后使程序跳出switch语句,如果没有break或yield,程序会顺序执行到switch结尾,产生直通行为。

6.不能在一个switch语句中混合使用冒号和箭头。

7.与break语句类似,yield会终止执行。但与break不同的是,yield还会生成一个值,这就是表达式的值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码创作者/article/detail/62331
推荐阅读
相关标签
  

闽ICP备14008679号