🖥
#Ruby の begin end while で 変数代入なしでループ処理する ( 後方 while )
例
- a に 10が代入されるまでランダムな値を代入し続ける例。
- 何回も処理を繰り返して a == 10 になったタイミングでループを抜ける。
- while は必ず1回は実行されて a 変数が定義される。コード的には後方にあるけど最初に評価される。後方 if とかと同じノリかな。
- begin rescue での例外キャッチの処理とは全く関係ない。たぶん。キーワードは似ているけれど。
i = 0
begin
a = rand(99)
i += 1
end while a != 10
a # 10
i # => 156
どういうこと?
- これとだいたい同じ。
a = nil
while a != 10
a = rand(99)
end
p a #10
whileだけじゃ無理なの?
- a を定義していないと未定義エラーが起こる。
- 最初に a = nil とか定義しておくのと同じ。
while a != 10
a = rand(99)
end
# NameError: undefined local variable or method `a' for main:Object
while とは違い、必ず一回は実行されるっぽい
begin
puts :a
end while false
# a
begin rescue end とは違うの?
例外をキャッチしたいわけではないらしい。そもそも rescue って書いてないし。
begin
raise
end while true
# RuntimeError:
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2019-10-24
Discussion