top



総投稿数 本 
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 | 問い合わせ

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

創るmetaboy - WEB創る、サイト創る、何創る -
metaboy つぶやき:twitter
すみません。禁煙カウンタ修復中・・・

 

創ったmetaboy
カテゴリー

 

リンク集

 

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

 

参加しています

スカウター : 創るmetaboy
track feed


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


Powered By イーココロ!

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

 

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

▼関連記事(5件まで):
読み込み中...

 

Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
使えるねっとのVPS(仮想専用サーバー)月2480円〜 使えるねっと
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン
レンタルサーバーなら使えるねっと

 

ツール その2






 

時間あります?