fallthrough是貫通語句,只能使用在switch語句中哆致。為了 錯誤的發(fā)生,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 | ?}
運(yùn)行結(jié)果:
The number 5 is a prime number, and also an integer.
例子中聲明了一個名為desc的String型變量并分派一個初始值怠晴。然后函數(shù)用switch匹配integer的值赴捞。如果integer的值符合素數(shù)列表中的一項笨忌,最后的desc會增加一段字符,注意數(shù)字都是素數(shù)办成。然后用fallthrough關(guān)鍵字讓代碼“掉到”default里泡态。default的代碼中再額外的給字符串添加些描述,最后switch結(jié)束迂卢。
如果integer不跟素數(shù)表中任何一項匹配某弦,那根本就不會匹配switch的第一個case。這里面沒有其他的case冷守,因此integer直接進(jìn)入default容器刀崖。fallthrough就是為了貫穿case分支而設(shè)的惊科。