next
広告
繰り返し処理の中で「next」が実行されるとブロック内の「next」以降の処理が行われずに次の繰り返しへ進みます。
「next」は次のように使用します。
count = 0 ("aa".."az").each{|str| count += 1 if count % 3 != 0 then next end print(str + "¥n"); }
上記では範囲オブジェクト「"aa".."az"」に対して「each」メソッドを使って順に要素を取り出し画面に表示しています。本来であれば「aa」から「az」まで26回繰り返しが行われますが、別途繰り返した回数をカウントし、カウントを3で割った余りが0でない時は繰り返しの中の処理をスキップし次の繰り返しへ進みます。結果的に3回に1回だけ要素が画面に表示されます。
なお繰り返しが入れ子になっている場合は「next」が実行された一番内側の繰り返しに関して次の繰り返しへ進みます。
while ... ... for ... next end ... end
上記の場合であれば「next」によって「for」文の次の繰り返しへ進みます。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku print("[start]¥n") count = 0 ("aa".."az").each{|str| count += 1 if count % 3 != 0 then next end print(str + "¥n"); } print("[end]¥n")
上記のプログラムを「test10-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )