top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_75

Ruby:◇case と when ・・・ 【Ruby:6.5歩目】

 2008-06-23
第6.5歩
 ◇case と when


私は 条件式は つい if文のみで記述することが多いのだが
(php,perl,vb,c, ・・・ なんでも)
やはり、
 改めて case文を学んでおこう
 if文よりもきれいにまとまることが多いようだ

Ruby では
case 条件となる値や式
when 値そのもの1
puts 実行内容1
when 値そのもの2
puts 実行内容2
when 値そのもの3
puts 実行内容3
end
のような書き方になり、前に指南書から確認した
「じゃんけんロボット」は

puts "じゃんけん" # 文字を表示し
sleep 1 # 1秒プログラム停止し
r = rand(3) + 1 # 0 以上 3 未満の範囲の整数の乱数を発生
case r
when 1
puts "グー"
when 2
puts "チョキ"
when 3
puts "パー"
end

と書き直すことができる

ちなみに if文だと
puts "じゃんけん" # 文字を表示し
sleep 1 # 1秒プログラム停止し
r = rand(3) + 1 # 0 以上 3 未満の範囲の整数の乱数を発生
if r == 1
puts "グー"
elsif r == 2
puts "チョキ"
elsif r == 3
puts "パー"
end

となり 確かに見た目はすっきりするなぁ。

(PHPでは?)
switch (式) を用いるね
switch (式) {
case 値1:
break;
case 値2:
break;
default:
}
 という構文で利用される
 break; がないと続けて
 次の条件を判定してしまうのがミソだなぁ。

 ・・・これをよく忘れるため
    if文だけで構成することが多いのだけれど。

なお、
 Ruby:case文において
  判定する値に 複数の値を設定できるのは
  他の言語と同じだ

(例)
hour = 15 # 時間を変数に入れて
case hour # 値を判定
when 15
puts "何か食べようか?おやつ?"
when 8,12,19
puts "食事にしよう"
end
なんてね。

※確かにこれを if文で書くとややこしくなりそうだな
 ( if hour == 8 or hour == 12 or hour == 19 ・・・)



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


  ▼
moreちなみに
 when の後の値の書き方だが

 範囲を示す場合
  when 0..5
   などして
nenrei = 18 # 年齢を変数に入れて
case nenrei # 値を判定
when 0..6
puts "幼児だね"
when 7..15
puts "児童だね"
when 16..19
puts "未成年だね"
when 20..99
puts "大人だね"
end

   と利用する
   ・この場合、未成年だね と表示される

 値で条件式を展開することもでき

case nenrei # 値を判定
when nenrei >= 0 and nenrei <= 6

 とできることや

 when 節の最後の式に * を前置すればその式は配列展開され

tempArray = [1,2,3]
case v
when *tempArray
..
end
 は、つまり

tempArray = [1,2,3]
case v
when 1,2,3
..
end
 と同じであること

 このあたりは覚えておかなければな。
commentsコメント
comment_post












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

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。