fallthrough是贯通语句,只能使用在switch语句中。为了 错误的发生,Swift中的switch 语句case分支不能贯通,即 行完一个case分支 跳出switch语句。 但是凡事都有例外,如果你的算法真的要多个case分支贯通,也可以使用fallthrough语句。
1 | let integer = 5 2 | var desc = "The number \(integer) is" 3 | switch integer { 4 | case 2, 3, 5, 7, 11, 13, 17, 19: 5 | desc += " a prime number, and also" 6 | fallthrough 7 | default: 8 | desc += " an integer." 9 | } |
运行结果:
The number 5 is a prime number, and also an integer.
例子中声明了一个名为desc的String型变量并分派一个初始值。然后函数用switch匹配integer的值。如果integer的值符合素数列表中的一项,最后的desc会增加一段字符,注意数字都是素数。然后用fallthrough关键字让代码“掉到”default里。default的代码中再额外的给字符串添加些描述,最后switch结束。
如果integer不跟素数表中任何一项匹配,那根本就不会匹配switch的第一个case。这里面没有其他的case,因此integer直接进入default容器。fallthrough就是为了贯穿case分支而设的。