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

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Ruby | 10 | case

↓↓クリックして頂けると励みになります。



09 | 論理演算】 << 【ホーム】 >> 【11 | 配列

caseを使った条件分岐
caseを使った条件分岐



Rubyのcase文は、条件分岐を行うための制御構造の一つです。
通常、case文は特定の式や値に基づいて複数の条件を評価し、条件に一致するブロックを実行します。




Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【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の条件は何個でもつなげることができます。


ではプログラムの実行結果を確認しましょう。

ruby casetest1.rb
 
BBBBBBBBBB



Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【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に代入しています。


出力結果です。

~/Desktop/Programming/RB $ ruby casetest2.rb

おはようございます。



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


新規作成 【iftest6.rb】

# 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



実行結果も同じです。

~/Desktop/Programming/RB $ ruby iftest6.rb

おはようございます。



09 | 論理演算】 << 【ホーム】 >> 【11 | 配列




↓↓クリックして頂けると励みになります。