このnext
ステートメントは、ループの一部をスキップして、ループの次の反復を続行するために使用されます。for
andwhile
ステートメントと組み合わせて使用できます。
いくつかの条件が評価された後に複雑なコードがある場合、次を使用している人を見てきました。
next if @state!=:some_state
# some long complicated code
今ここで私は以下のようnext
に私の中で遊んだ:IRB
n = 1
loop do
n = n + 1
next unless n == 10
print "Good"
break
end
# Good=> nil
上の方は了解しました。きれいにクリア。
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi" unless n == 5
p "good"
break
end
#1hi
#2hi
#3hi
#4"good"
#=> nil
puts "hi"
上記のコードでは、行とunless n == 5
実行の順序がわかりませんでした。どちらが最初に実行されましたか?
以下は につながりますinfinite Loop
。
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi"; 2 + 3 unless n == 5
p "good"
break
end
一方、これは良いです:
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi", 2 + 3 unless n == 5
p "good"
break
end
#1hi
#5
#2hi
#5
#3hi
#5
#4"good"
#=> nil
ここで理解するのを手伝ってください-これはそのforever
ループをどのように解決しますか?