Ruby:◇繰り返し2:while ・・・ 【Ruby:7.5歩目】
◇繰り返し2:while
いよいよ while だ。どんな言語にも必ず(?)ある、繰り返し用
のメソッド。果たしてRuby では?
+++++++++++++++++++++
・while文
+++++++++++++++++++++
whileを使う一番の理由は、条件式を組み合わせることだ
(例)
while (条件式)
(繰り返される処理)
ens
ということだ。
また、途中で抜ける場合は break で行う
例えば、おなじみ「じゃんけんロボ」で
・グーが3回出たら止める
・それは何回目の試行であったか
・・・というのを実現してみる
※ちなみに、while ck_cnt < 2 { |i| というような使い方
はできないみたいなので、試行回数をカウントする変数を用意
ck_all = 0 #試行回数を初期化
while ck_cnt < 2 { |i|
i =0
while ck_cnt < 3
r = rand(3) + 1 # 0 以上 3 未満の範囲の整数の乱数を発生
# その上で、+1 する
print "#{i + 1}回目:"
case r
when 1
puts "グー"
ck_cnt += 1
when 2
puts "チョキ"
when 3
puts "パー"
end
i += 1
end
puts "#{i}回目だ!"
> よしうまく動いたようだ。
なお、while の後 true
を与えれば 無限ループをつくれる ということだが
どんなときに利用するのだろうか?
puts "止まらないから気をつけて!"
end
後、途中で条件により break で
ループを抜けることができるのはphpでも同じだが
ないようだな。
【20090613 追記】
コメントにあるように、教えていただいた。
・next
こちらのサイトで、そのあたりの違いなど
解説されていた。ありがとうございます。
break, next, redoの違い
しかし、Ruby には if文の時にあったような
while修飾子というのがあって
式 while 式
右辺の式を評価した値が真の間、左辺を繰り返し実行します。
・・・ということで、これは便利だ。
また
式を評価した値が真になるまで、本体を繰り返して実行する
until があるのは他の言語と同じだ
+++++++++++++++++++++
・until
+++++++++++++++++++++
until 式 [do]
...
end













