学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Rubyプログラミング入門その8 caseを使った条件分岐

<<前  [TOP]  次>>


メモ帳を開いて次のプログラムを作ってみましょう。


【casetest1.rb】

# casetest1.rb

char = 'B' 

case char
	when 'A' then 
		puts 'AAAAAAAAAA' 
	when 'B' then 
		puts 'BBBBBBBBBB' 
	when 'C' then 
		puts 'CCCCCCCCCC' 
end



まず、case文の構成を見てください。

case 条件
	when 条件1 then 
		実行文
	when 条件2 then 
		実行文
	when 条件 then 
		実行文 
        else
		実行文 
end



このcase文はif文と同じで、条件分岐に使います。
if文より内容が直感的にわかり見やすいというのが特徴です。
ただ、複雑な条件分岐には使用できないのが欠点です。


caseの条件に当てはまれば、whenで指定した条件が順番に処理されていきます。
caseの条件に当てはまれば、実行文が実行されcaseを抜けます。
どのcaseにも当てはまらない場合は、elseの実行文が実行されます。


caseの条件は何個でもつなげることができます。


ではプログラムの実行結果を確認しましょう。
f:id:MrRadiology:20180115162356p:plain


メモ帳を開いて次のプログラムを作ってみましょう。


【casetest2.rb】

# casetest2.rb

require 'date'

time = DateTime.now 
hour = time.hour

case hour
	when 6..11 then 
		puts 'おはようございます。' 

	when 12..16 then
		puts 'こんにちは。' 
	when 17..21 then
		puts 'こんばんは。' 
	else
		puts 'おやすみなさい。'
end



現在の時間を取得するためにrequire 'date'でdateパッケージを取得しています。

time = DateTime.now 
hour = time.hour

DateTimeを使って現在の時間を取得して変数time代入、さらに time.hourで時間のみを取り出して変数hourに代入しています。


出力結果です。
f:id:MrRadiology:20180115164530p:plain


if文で書き換えてみます。


【iftest6.ruby】

# iftest6.rb

require 'date'

time = DateTime.now 
hour = time.hour

if hour > 5 && hour < 12 then
	puts 'おはようございます。'
elsif hour < 17 then 
	puts 'こんにちは。'
elsif hour < 21 then
	puts 'こんばんは。'
else
	'おやすみなさい。'
end



実行結果も同じです。
f:id:MrRadiology:20180115165059p:plain


<<前  [TOP]  次>>