簡單我是新來的斯威夫特所以這可能變成是非常簡單的,但是我會問你啦,因爲我無法弄清楚意外錯誤:斯威夫特 - 在if語句
我被打在操場上,我想我會寫一些代碼行來做到這一點:在兩個給定值(a,b)之間生成一個隨機數。 例如,如果a = 5且b = 20,則應該生成5和20之間的隨機數。 但我得到一個意外的錯誤!我寫的代碼
這些行var a = UInt32()
var b = UInt32()
var randomNumberInBetween = Int()
a = 5
b = 20
if (b - a) > 0 {
randomNumberInBetween = Int(arc4random_uniform(b - a) + a)
} else {
print("error", terminator: "")
}
現在:
如果B> A(使(B-A)> 0),它工作得很好。
如果b = a它打印「錯誤」,所以它工作正常。但是如果a> b,使得(b-a)< 0,它給出這個錯誤:「執行被中斷,原因:EXC_BAD_INSTRUCTION(代碼= EXC_l386_INVOP,子代碼= 0x0)」。
我的問題是:如果(B-A)< 0不應該只是運行if語句中的 「其他」 部分,只打印 「錯誤」?爲什麼會發生此錯誤?
只需更換'若B - A> 0'通過'如果B> ...了' –
@MartinR ...笑 – Alexander
@MartinR笑奏效,非常感謝很多! – tommsyeah