2016-12-07 12 views

答えて

4

シンプルあなたは何かが欠けています。 indexはブロックの完了ごとに自動的にインクリメントされるはずです(これはforループなので)。

for index in 0..<100 { 
    if someCondition(index) { 
     index = index + (number of your expected skip - 1) //Skip iterations here 
     continue; 
    } 
} 

しかしwhileループとブライアンの答えははるかに効率的なこのケースである@:だからあなたはあなたより1少ないのようにスキップの数をインデックスをインクリメントする必要があります。

+0

これは完璧に動作するかどうかの条件内continueを使用しています。 whileループは、この状況のた​​めのより良い選択であると思われる。 – MyBikeIsAwesome

+1

'while(index <100){index + = someCondition(index)? 3:1} ' –

0

を行いますながら

for index in 0..<100 { 
    if someCondition(index) { 
     index = index + 3 //Skip iterations here 
    } 
} 
+0

これは機能しません。更新インデックスはループ反復には影響しません。 –

+0

@BryanChen申し訳ありませんが、私はcontinueステートメントを逃しました。答えを更新しました。 – nayem

+0

これは期待どおりに動作しません。それを自分で実行し、各反復で 'index'を表示すれば、私の意味を知ることができます。 –

6

最も簡単な方法は、

 for index in 1...100 
     { 
      if index == 5 
      { 
       continue 
      } 
     print(index)//1 2 3 4 6 7 8 9 10 
     } 

それとも

for index in 1...10 where index%2 == 0 
{ 
    print(index)//2 4 6 8 10 
} 
+0

をすぐに試すことができる私の環境を持っていませんでした。 – Fattie

+0

それは普通です:)。 –

関連する問題