在 Swift 中的 switch 語(yǔ)句,只要第一個(gè)匹配的情況(case) 完成執(zhí)行,而不是通過(guò)隨后的情況(case)的底部,如它在 C 和 C++ 編程語(yǔ)言中的那樣。以下是 C 和 C++ 的 switch 語(yǔ)句的通用語(yǔ)法:
switch(expression){
case constant-expression :
statement(s);
break; /* optional */
case constant-expression :
statement(s);
break; /* optional */
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
在這里,我們需要使用 break 語(yǔ)句退出 case 語(yǔ)句,否則執(zhí)行控制都將落到下面提供匹配 case 語(yǔ)句隨后的 case 語(yǔ)句。
語(yǔ)法
以下是 Swift 的 switch 語(yǔ)句的通用語(yǔ)法:
switch expression {
case expression1 :
statement(s)
fallthrough /* optional */
case expression2, expression3 :
statement(s)
fallthrough /* optional */
default : /* Optional */
statement(s);
}
如果不使用 fallthrough 語(yǔ)句,那么程序會(huì)在 switch 語(yǔ)句執(zhí)行匹配 case 語(yǔ)句后退出來(lái)。我們將使用以下兩個(gè)例子,以說(shuō)明其功能和用法。
示例 1
以下是 Swift 編程 switch 語(yǔ)句中不使用 fallthrough 一個(gè)例子:
import Cocoa
var index = 10
switch index {
case 100 :
println( "Value of index is 100")
case 10,15 :
println( "Value of index is either 10 or 15")
case 5 :
println( "Value of index is 5")
default :
println( "default case")
}
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
Value of index is either 10 or 15
示例 2
以下是 Swift 編程中 switch 語(yǔ)句帶有 fallthrough 的例子:
import Cocoa
var index = 10
switch index {
case 100 :
println( "Value of index is 100")
fallthrough
case 10,15 :
println( "Value of index is either 10 or 15")
fallthrough
case 5 :
println( "Value of index is 5")
default :
println( "default case")
}
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
Value of index is either 10 or 15Value of index is 5