top



総投稿数 本 課題月間50本!
no_78

Ruby:◇繰り返し2:while ・・・ 【Ruby:7.5歩目】

 2008-06-24
第7.5歩
 ◇繰り返し2:while


 いよいよ while だ。どんな言語にも必ず(?)ある、繰り返し用
のメソッド。果たしてRuby では?

 +++++++++++++++++++++
 ・while文
 +++++++++++++++++++++
  whileを使う一番の理由は、条件式を組み合わせることだ
 (例)
 while (条件式)
  (繰り返される処理)
 ens
 
 ということだ。
 また、途中で抜ける場合は break で行う

例えば、おなじみ「じゃんけんロボ」で
・繰り返し じゃんけんを行い
・グーが3回出たら止める
・それは何回目の試行であったか

・・・というのを実現してみる

※ちなみに、while ck_cnt < 2 { |i| というような使い方
はできないみたいなので、試行回数をカウントする変数を用意

ck_cnt = 0 #チェック回数を初期化
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
 を与えれば 無限ループをつくれる ということだが
 どんなときに利用するのだろうか?
while true
puts "止まらないから気をつけて!"
end
これはテストしない

 後、途中で条件により break
ループを抜けることができるのはphpでも同じだが
phpにある continue にあたるものはRubyには
ないようだな。


 【20090613 追記】
 コメントにあるように、教えていただいた。
 ・next
  こちらのサイトで、そのあたりの違いなど
  解説されていた。ありがとうございます。
  break, next, redoの違い

 しかし、Ruby には if文の時にあったような
while修飾子というのがあって
 式 while 式
 右辺の式を評価した値が真の間、左辺を繰り返し実行します。
 ・・・ということで、これは便利だ。

 また
 式を評価した値が真になるまで、本体を繰り返して実行する
until があるのは他の言語と同じだ
 +++++++++++++++++++++
 ・until
 +++++++++++++++++++++
 until 式 [do]
  ...
 end



FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ

commentsコメント
> phpにあるcontinue

Rubyにはnextがありますよ。
【2009/05/13 11:55】 | dan5 #wLMIWoss | [edit]
ありがとうございます!
もっと勉強します。
【2009/05/13 12:47】 | metaboy #- | [edit]
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/78-0d5964f5
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

正当なCSSです! 正当なCSSです!

創るmetaboy - WEB創る、サイト創る、何創る - ページランク

 

創ったmetaboy

勉強勉強!!
実験的に構築している
創るブログ
 ( by Movable Type4 )

もうひとつの創るブログ
  ( by Wordpress )

 

カテゴリー

 

リンク集

 

ブロとも申請フォーム
月別アーカイブ
 

 

参加しています

スカウター : 創るmetaboy 
track feed


SEO対策:プログラミング
SEO対策:WEBサイト
SEO対策:ホームページ
SEO対策:
SEO対策:WEBサービス


Powered By イーココロ!

グリーンブログ ブログで止める温暖化

 

サイトマップ
サイトマップ(全ての記事)
を表示する

▼ほんと最新の10件:
Powered by RSSリスティング

 

Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)

 

ツール その2

 

更新しました!