場合に予期しないエラー:私は遊んでいたスウィフト - 私は、これは非常に単純であることが判明するかもしれませんが、私はそれを把握することはできませんので、私はとにかくあなたを頼むよスウィフトに新たなんだ、簡単な文で
を私はこれを行うためにいくつかのコード行を書くと思った:2つの与えられた値(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場合>()(B-Aとなるよう> 0)それだけで正常に動作します。
b = aの場合、「エラー」が出力されるため正しく動作します。
しかし、a> bの場合、(b-a)<が0であるため、「実行が中断されました。理由:EXC_BAD_INSTRUCTION(コード= EXC_l386_INVOP、サブコード= 0x0)」。
私の質問は:もし(B-A)< 0は、それだけでif文の "他" の部分を実行して、単に "エラー" を印刷するべきではないのですか?このエラーはなぜ発生しますか?
をもしB - > 0 '> A' ... –
@MartinR ...笑 – Alexander
@MartinRそれが働い笑、Bかのおかげで'によってロット!! – tommsyeah