2016-08-25 13 views
-4

forループを使用して配列を反復処理すると「範囲外エラー」が発生します。Swift配列のインデックス上のforループを使用して範囲外エラーが発生しました

var oddNumbers: [Int] = [1,3,5,7,9] 
for number in (0...oddNumbers.count+1) { 
    print(oddNumbers[number]) 
} 
+0

の代わりに...count..<の使用に注意してください。 '(0 ... oddNumbers.count + 1)の数値のために'を書くと、 'number'はそれより大きくなる可能性があります。 – OOPer

答えて

1

は、あなたの配列の5つの値がありますが、あなたのループは0から6まで実行されますので、あなたがで終わる:

インデックス0:1

インデックス1:3

インデックス2:5

インデックス3:7

インデックス4:9

インデックス5:エラー

より良いアプローチは、アレイ・カウントを使用し、(インデックス番号を考慮して)それよりも1つの少ない数までループを実行することです。 1 '(包括的) - `oddNumbers`のインデックスは` oddNumbers.countに0にする必要がある代わりにcount + 1

var oddNumbers: [Int] = [1,3,5,7,9] 
for number in (0 ..< oddNumbers.count) { 
    print(oddNumbers[number]) 
} 
関連する問題