迅速

2016-07-31 9 views
0

に「数字が5から1までの間にある場合は、」私は私がこれを試みたが、それは働いていない「の数字が1〜5の間にある場合は、」迅速

のために迅速にコーディングする必要があります。

if myPercent == (1 ... 5) { 
     let numberGroup = 1 

これを修正するにはどうすればよいですか?

答えて

3

あなたはそれが境界内にありますかどうかを確認するために、2つの条件を使用することができます。

if myPercent >= 1 && myPercent <= 5 { 
    ... 
} 
+0

Great @ Aurora0001 - これは完全に機能しました。私はこの回答を受け入れてくれてありがとうございます。 –

+0

喜んで助けました。私は私の解決策か@ dasblinkenlightの方が良いかどうかを調べるためにテストするでしょう。私は 'contains'メソッドが広い範囲では遅くなると思っていますが、ここではうまくいくでしょう。 – Aurora0001

6

使用contains

if (1...5).contains(myPercent) { 
    ... 
} 
+0

ありがとうございます@dasblinkenlight –

+0

はい私のコードで動作します。 Great –

+0

これは答えになるはずです。それは以前よりもきれいです。 – TheValyreanGroup

5

contains範囲で動作するための基本的な方法のようです。場合ケース

if 1...5 ~= myPercent { 
    //... 
} 

使用:

if case 1...5 = myPercent { 
    //... 
} 
+0

の代わりにそれを使用してください。素敵でシンプルなおかげで@OOpPer。それは私が探していたものです。私はそれが近くにあったことを知っていました、これは私が到達しようとしていたものです。 –

1

switch statement組み合わせる拡張の使用を検討して:

ここ

は、いくつかの追加...

使用パターンマッチングオペレータであります

extension Int { 
    func isBetween(range:Range<Int>) -> Bool { 
     switch self { 
     case range: 
      return true 
     default: 
      return false 
     } 
    } 
} 
だからあなたのインスタンスに

5.isBetween(1..<6) // true 
6.isBetween(1..<6) // false 

このため8 /スウィフトあなたは半開範囲演算子を使用しなければならない3 Xcodeで作業すること

5.isBetween(1...5) // true 
6.isBetween(1...5) // false 

注:

は、これははるかに容易な実装になります

if myPercent.isBetween(1..<6) { 
    let numberGroup = 1 
} 

それとも:

let numberGroup = myPercent.isBetween(range: 1..<6) ? 1 : 0