case后有多个when,是按顺序执行,啊
时间: 2024-09-09 20:09:35 浏览: 42
Sql_Case_When用法.doc
5星 · 资源好评率100%
在很多编程语言中,尤其是那些支持条件语句的,如Scala、Java等的switch-case结构,当case后跟有多个when分支时,并不是按照它们在代码中的编写顺序严格依次执行的。通常情况下,switch表达式会从第一个匹配的case开始执行相应的代码块,直到找到匹配的分支或遇到default分支(如果有的话)。一旦匹配成功,后续的when分支将被忽略。
也就是说,匹配是"早终止"的,一旦找到一个与输入值相匹配的case,程序就会立即跳到那个分支并停止继续检查其他when。如果没有找到匹配的case,才会执行default分支(如果有),否则整个switch块不会执行任何默认操作。
举个例子:
```scala
val dayOfWeek = "Monday"
switch(dayOfWeek) {
case "Monday", "Tuesday", "Wednesday":
println("Weekdays")
case "Thursday", "Friday":
println("Weekends")
default:
println("Invalid day")
}
```
在这个例子中,因为`dayOfWeek`等于`"Monday"`,所以只会执行第一个匹配的`"Monday", "Tuesday", "Wednesday"`分支,不会继续检查后面的`"Thursday", "Friday"`分支,也不会执行default分支。
阅读全文