ループの先頭から開始せずに、ループ内の次の要素を取得する方法はありますか?
次の要素への反復が可能であることは知っていnext
ますが、ループの先頭から開始されます。次の要素を取得して、ループ内の次のステートメントに進みたい。
次のような構造のテキスト ファイルを解析しています。
element 1
part 1
part 2
element 2
part 1
part 2
要素ごとに 11 個のパーツがあることに注意してください。これは単なる例です。また、構文解析中にはぎ取られた行が時々あるので、ループの反復ごとに一定の要素数だけ進めることはできないと思います。
すべてのテキストを配列に読み込んでから、次のようなものを使用して各行を処理したいと考えています。
text.each do |L|
#if L is new element create object to store data
#parse next line store as part 1
#parse next line store as part 2
end
ループと、配列に明示的にインデックスを付け、毎回必要な量だけインデックス変数をインクリメントする C のようなコーディング スタイルでこれを行う方法を知っていますwhile
が、Ruby でこれを行う方法があるかどうか疑問に思っています。 . に似てnext
いますが、ループの先頭から開始するのではなく、次の要素だけで、ループ内の同じポイントから続行します。
編集:
while
ループでこの問題を解決する方法の簡単な例を次に示します。
text = ["a", "b", "c", " ", " ", "d", "e", "f"]
i = 0
while i < text.length do
if text[i] == " " then
i += 1
else
a = text[i]
b = text[i+1]
c = text[i+2]
puts a + b + c
i += 3
end
end
私が書いている実際のコードはもっと複雑であることに注意してください。ここで、私がやりたいことを説明する最も簡単な例を考え出そうとしました。