CH05. 選擇敘述
5.1 if敘述 if 敘述,表示若條件運算式為真時,則執行其對應的敘述,若為 假,則不做任何事。 if 條件運算式 { 當條件為真時,要執行的敘述 }
範例程式 // selection statement var num = -100 if num < 0 { num = -num } print("num 的絕對值為 \(num)")
輸出結果 num 的絕對值為 100
5.2 if … else 敘述 if…else敘述,表示若條件運算式為真時,則執行條件為真所對應 的敘述,若為假,則執行條件為假所對應的敘述。 if 條件運算式 { 當條件為真時,要執行的敘述 } else { 當條件為假時,要執行的敘述 }
範例程式 let maryScore = 58 if maryScore >= 60 { print("恭喜您,通過") } else { print("抱歉,您被當") } print("Over")
輸出結果 抱歉,您被當 Over
5.3 else … if 敘述 有多個條件要加以判斷,可以使用else…if 敘述來完成。
範例程式 let gesture = 5 print("您出的手勢是: ", terminator: "") if gesture == 2 { print("剪刀") } else if gesture == 0 { print("石頭") } else if gesture == 5 { print("布") } else { print("不正確的手勢") } print("Over")
輸出結果 您出的手勢是: 布 over
5.4 switch 敘述 由於else…if在視覺上看起來較冗長,所以常會以switch…case敘述 取代之。 switch 運算式 { default: 敘述 }
範例程式 let gesture = 5 print("您出的手勢是: ", terminator: "") switch gesture { case 2: print("剪刀") case 0: print("石頭") case 5: print("布") default: print("不正確手勢") } print("Over")
輸出結果 您出的手勢是: 布 Over
5.5 條件運算子 條件運算子(conditional operator)是由 ? 和 : 這兩個符號所組成的, 其又稱為三元運算子(ternary operator),因為此運算子作用於三個 運算元。
範例程式 // ternary operator let number: Int16 = -101 var absoluteNum: Int16 absoluteNum = number <= 0 ? -number : number print("\(number) 的絕對值為 \(absoluteNum)")
輸出結果 -101 的絕對值為 101
5.6 break、continue及fallthrough敘述 控制轉移敘述計有break、continue及fallthrough。break敘述除了 用在switch外,也可用於迴圈敘述。 在迴圈中,若遇到break,則表示中止此迴圈;若遇到 continue, 則不執行continue以下的敘述,而是回到迴圈的下一個有效敘述。
continue範例程式 // continue 1 var data = [10, 20, 30, 40, 50, 61, 70] var total = 0 for i in data { if i%2 == 0 { total += i } else { continue } print("toatl = \(total)")
輸出結果 toatl = 220
break 範例程式 // break var data = [10, 20, 30, 40, 50, 61, 70] var total = 0 for i in data { if i%2 == 0 { total += i } else { break } print("total = \(total)")
輸出結果 total = 150
fallthrough 範例程式 // fallthrough let kk = 1 switch kk { case 1: print("kk = 1") fallthrough case 2: print("kk = 2") case 3: print("kk = 3") default: print("Nothing") }
輸出結果 kk = 1 kk = 2