我正在尝试理解switch/ trying关键字。在开关块中使用valid直通式语句意味着输入下一个块,即使表达式不匹配,但只有在已经匹配的情况下才有效,对吗?下面的代码似乎是这样工作的,但我只想确定一下。
package main
import "fmt"
func main() {
integer := 5
switch integer {
case 4:
fmt.Println("integer <= 4")
fallthrough
case 5:
fmt.Println("integer <= 5")
fallthrough
case 6:
fmt.Println("integer <= 6")
fallthrough
case 7:
fmt.Println("integer <= 7")
fallthrough
case 8:
fmt.Println("integer <= 8")
fallthrough
default:
fmt.Println("default case")
}
}发布于 2017-09-26 05:19:40
是。case直通式语句将控制转移到表达式开关中的下一个case子句。在转移控制时,不考虑下一种情况上的表达式。
“下拉”语句将控制转移到表达式"switch“语句中下一个case子句的第一个语句。它只能用作该子句中最后的非空语句。
这是关于表达式开关的
在一个大小写或default子句中,最后一个非空语句可能是一个(可能被标记为)“直到”语句,以指示控制应该从这个子句的末尾流到下一个子句的第一个语句。否则,控制流将流到"switch“语句的末尾。除表达式开关的最后一个子句外,“last”语句可能显示为所有语句的最后一条语句。
发布于 2017-09-26 05:20:03
没错。fallthrough语句使它从case子句上的最后一条语句转到下一条跳过后面的case计算的第一条语句。来自等级库
在一个大小写或default子句中,最后一个非空语句可能是一个(可能被标记为)“直到”语句,以指示控制应该从这个子句的末尾流到下一个子句的第一个语句。否则,控制流将流到"switch“语句的末尾。除表达式开关的最后一个子句外,“last”语句可能显示为所有语句的最后一条语句。
https://stackoverflow.com/questions/46418242
复制相似问题