2017-07-26 55 views
-5

因此,在過去的一個小時左右,我一直試圖嵌套三個if語句,但沒有任何工作。我真的把我的頭髮拉出來看起來很簡單,但我不知道我做錯了什麼。任何幫助表示讚賞。爲什麼swift不允許嵌套if語句和其他語句?

var population = 125442 
var message: String 
var hasAPostOffice: Bool = true 

if population < 10000 { 
    message = "\(population) is a pretty small town" 
}else if population >= 10000 && population < 50000 { 
     message = "\(population) is a medium sized town" 
}else{ 
     message = "\(population) is a very large town!" 
}else = { 
    population >= 200000 && population < 120000 { 
     message = "\(population) is a super huge town" 
} 
} 
print(message) 

if !hasAPostOffice { 
    print("Where could I buy stamps?") 
} 
+1

你的這部分代碼存在一些問題,從第一次看其他{ 消息=「\(人口)是一個非常大的城鎮!」 } else = { population> = 200000 && population <120000 message =「\(population)is a super huge town」 } –

+0

你想用else = after else語句達到什麼目的? –

+0

僅供參考 - 在您嘗試使用三種語言時,只有兩個「if」語句。 – rmaddy

回答

2

你嵌套應該看起來像 -

if population < 10000 { 
    message = "\(population) is a pretty small town" 
}else if population >= 10000 && population < 50000 { 
    message = "\(population) is a medium sized town" 
}else if(// some condition here){ 
    message = "\(population) is a very large town!" 
}else { 

} 

加上這是什麼狀況

population >= 200000 && population < 120000 { 

在我看來是人口不能同時超過120000,更何況該永遠是真實的同時超過20萬。

所以在這裏檢查你的邏輯

+0

@rmaddy謝謝指出。在複製過去中錯過了它。我的錯。已糾正它 –

+0

謝謝。我看到我出錯的地方。 – Larry

+0

太好了,很高興幫助。 –

0

您遇到的問題不限於Swift。其他的陳述只能與一個陳述相關聯。

在你的代碼中,你有兩個else語句。如果你試圖得到評估,有一個嘗試條件,那麼其他語句看起來應該是一個else。因此,如果您有一個依賴於表達式的條件,請創建一個else if語句。

if population < 10000 { 
    message = "\(population) is a pretty small town" 
} 
else if population >= 10000 && population < 50000 { 
    message = "\(population) is a medium sized town" 
} 
else if population >= 200000 && population < 120000{ 
message = "\(population) is a super huge town" 
} 
else{ 
    message = "\(population) is a very large town!" 
} 
0

看起來你的邏輯是關閉的;解決的辦法是最終再次添加作爲最大的價值:

if population < 10000 { 
    message = "\(population) is a pretty small town" 
} else if population >= 10000 && population < 50000 { 
    message = "\(population) is a medium sized town" 
} else if population >= 50000 && population < 120000 { 
    message = "\(population) is a very large town" 
} else if population >= 120000 && population < 200000 { 
    message = "\(population) is a super huge town" 
} else { 
    message = "\(population) is enormous!" 
} 
+0

哦,我明白了。謝謝。 – Larry

+0

噢。這只是早上一早我的錯誤代碼。我已經修復了我的項目。謝謝。 – Larry

0

此作品更精美,switch語句:

let population = 125442 
let hasAPostOffice = true 

let message: String 
switch population { 
    case 0 ..< 10_000: message = "\(population) is a pretty small town" 
    case 10_000 ..< 50_000: message = "\(population) is a medium sized town" 
    case 120_001 ... 200_000: message = "\(population) is a super huge town" 
    default: message = "\(population) is a very large town!" 
} 

print(message) 

if !hasAPostOffice { 
    print("Where could I buy stamps?") 
}