在本文中,您將學(xué)習(xí)使用兩個條件語句:if和if ... else來指定程序執(zhí)行的流程。
在編程中,您可能希望根據(jù)指定的條件是 true 或false(僅在運(yùn)行時知道)執(zhí)行不同的操作。在這種情況下,將使用控制流語句。
Swift中 if語句 的語法為:
if expression { // 語句 }
expression是一個布爾表達(dá)式(返回 true 或 false)。
如果 expression 求值為 true,則執(zhí)行 If 代碼塊中的語句。
如果 expression 求值為 false,則 if 代碼塊中的語句從執(zhí)行中跳過。
let number = 10 if number > 0 { print("數(shù)字為正。") } print("此語句始終執(zhí)行。")
運(yùn)行該程序時,輸出為:
數(shù)字為正。 此語句始終執(zhí)行。
在上面的程序中,我們已經(jīng)用值10初始化了常量number,并且測試表達(dá)式number>0的計算結(jié)果為true。因此,語句print("Number is positive.")在if語句體中執(zhí)行,該語句輸出:數(shù)字為正。在控制臺中。
現(xiàn)在,將number的值更改為負(fù)整數(shù)。比方說-5。在這種情況下的輸出將是:
該語句始終執(zhí)行。
當(dāng)number使用值-5初始化時,測試表達(dá)式number > 0的計算結(jié)果為false。因此,Swift編譯器會跳過if語句主體的執(zhí)行。
如果 if 測試表達(dá)式的值為true,則if語句執(zhí)行代碼的特定部分。if語句可以具有可選的else語句。如果測試表達(dá)式為 false,則執(zhí)行else語句主體內(nèi)的代碼。
if-else語句的語法為:
if expression { // 語句 } else { // 語句 }
let number = 10 if number > 0 { print("數(shù)字為正。") } else { print("數(shù)字不是正數(shù)。") } print("此語句始終執(zhí)行。")
運(yùn)行該程序時,輸出為:
數(shù)字為正。 此語句始終執(zhí)行。
在上述程序中,常量number用值 10 初始化,并且測試表達(dá)式 (number > 0) 計算結(jié)果為true。因此,if語句體內(nèi)的 print("數(shù)字為正。") 語句將被執(zhí)行。
此輸出 : 數(shù)字為正。在控制臺中,else主體內(nèi)的語句將從執(zhí)行中跳過。
現(xiàn)在,將number 值更改為負(fù)數(shù)。假設(shè)為 -5。在這種情況下的輸出將是:
數(shù)字不是正數(shù)。 此語句始終執(zhí)行。
當(dāng)number 為 -5 時,測試表達(dá)式number > 0的計算結(jié)果為 false。在這種情況下,將執(zhí)行else主體內(nèi)部的語句,并跳過if主體內(nèi)部的語句。
您還可以在Swift中用三元運(yùn)算符 代替 if..else語句,它是 if ... else 語句的簡寫形式。
在Swift中,還可以在許多代碼中執(zhí)行一個代碼塊。為此,您可以使用 if..else..if 階梯:
if-else-if語句的語法為:
if expression1 { // 語句 } else if expression2 { // 語句 } else if expression3 { // 語句 } . . else { // 語句 }
if語句從上到下執(zhí)行。一旦測試表達(dá)式為真,將在該if語句的主體內(nèi)執(zhí)行代碼。然后,程序控制跳到if-else-if階梯之外。
如果所有測試表達(dá)式均為 false,則執(zhí)行else主體內(nèi)部的代碼
以下程序檢查number是正數(shù),負(fù)數(shù)還是0。
let number = 0; if number > 0 { print("數(shù)字為正。") } else if (number < 0) { print("數(shù)字為負(fù)數(shù)。") } else { print("數(shù)字為0。") }
運(yùn)行該程序時,輸出為:
數(shù)字為0。
在上面的程序中,常量number用值 0 初始化。由于if 是從上到下執(zhí)行語句,則它優(yōu)先檢查 number > 0 的表達(dá)式計算為 false。
然后,它檢查下一個表達(dá)式 number < 0,該表達(dá)式的結(jié)果也為 false。
因此,print("Number is 0.")將執(zhí)行else主體內(nèi)部的語句,該語句在控制臺中輸出數(shù)字為0。
在Swift中,if..else語句中可能包含其他的if..else語句。稱為嵌套if ... else語句。
您還可以在Swift中用switch替換嵌套的if..else語句,這在處理幾個可能的選項(xiàng)時有時是一種更簡單的方法。
嵌套的if-else語句的語法為:
if expression1 { if expression2 { // 語句 } else { // 語句 } } else { if expression3 { // 語句 } else { // 語句 } }
這是一個使用嵌套if語句查找3個數(shù)字中最大數(shù)字的程序。
let n1 = -1.0, n2 = 4.5, n3 = -5.3 if n1 >= n2 { if n1 >= n3 { print("最大的數(shù)字是 ", n1) } else { print("最大的數(shù)字是 ", n3) } } else { if n2 >= n3 { print("最大的數(shù)字是 ", n2) } else { print("最大的數(shù)字是 ", n3) } }
當(dāng)您運(yùn)行上述程序時,輸出將是:
最大的數(shù)字是 4.5