目前我有这个:
let somePoint = (1, 0)
switch somePoint {
case (0,0):
print("origin") // does not print
fallthrough
case (_, 0):
print("y-axis") // prints y-axis. this makes sense
fallthrough
case(0, _):
print("x-axis") // prints x-axis (because of fallthrough? this should not print)
fallthrough
case(-2...2, -2...2):
print("in 5x5 box about the origin") // this prints and makes sense
default:
print("somewhere else") // does not print
}
我希望通过这个switch语句,使每个case语句只有在为true时才被执行,而不是只有第一个匹配的case语句被执行。我认为我可以通过使用fallthrough语句来实现这一点。然而,这使我开始怀疑它的工作原理了。为什么fallthrough会自动执行下一行代码,即使它没有匹配的case语句?我该如何让这个switch语句按照我想要的方式运行呢?
goto case X
来解决这个问题,而无需使用新的关键字,易于阅读。 - phuclv