AR삽질러

Ruby 条件分岐 unless, case 본문

Ruby/Ruby-日本語

Ruby 条件分岐 unless, case

아랑팡팡 2023. 12. 14. 02:11
728x90

 

Ruby 条件分岐 unless, case

 Rubyでunless文は条件が嘘の時にコードブロックを実行する条件文です。 基本的にif文の逆の役割を果たします。 unless文は否定的な条件をより明確かつ自然に表現する時に有用です。

 unless文は条件が単純で明確な時に最もよく作動します。 複雑な条件や複数の条件を組み合わせる必要がある場合は、if文を使用した方がよいでしょう。

 

構文 : unless

unless
	# 条件式がfalseのとき、実行したい処理。
else
	# 条件式がfalseでない場合、つまり真(true)の時実行したい処理。
end

 * elsifに相当するものは無い。

 

elseは省略可能

unless
	# 条件式がfalseのとき、実行したい処理。
end

 

例題1

 - 変数 nの値が 0でなければ "Not zero" と出力するプログラムをifを使って記述。

*値が 0か判定するには、zero? メソッドが使える。

# if 
if !number.zero?
  puts "Not zero!"
else
  puts "zero!"
end

 

例題2

 - unlessを使って書き換える。

def zero_check
    print "入力 : "
    number = gets.chomp.to_i

    unless number.zero?
        puts "Not zero!"
end

zero_check()

 

例題3

 - 変数 nの値が 0の時に、"This is zero" と表示する機能を追加。

def zero_check
    print "入力 : "
    number = gets.chomp.to_i

    unless number.zero?
        puts "Not zero!"
    else
        puts "This is zero!"
    end
end

zero_check()

 

 


 

Ruby 条件分岐 case

 Rubyのcase文は、様々な条件を確認する際に使用する条件文です。 各条件はwhenキーワードを使用して定義され、一致する条件のコードブロックが実行されます。 elseは、すべてのwhen条件が一致しない場合に実行されるコードブロックです。

 caseを使うと複数の条件を指定する場合は、elseifを重ねるよりも、caseで書いた方がシンプルで読みやすくなる。

 

構文 条件分岐 case

case 対象のObjectや式

when 値1
	# 値1に一致する場合の処理
when 値2
	# 値2に一致する場合の処理
when 値3
	# 値3に一致する場合の処理
else
	# どの値とも一致しない場合の処理
end

 

例題

 - 誕生石かた、誕生月を出力するプログラムをif とcaseで書いてみましょう。

 - ruby : July

 - peridot : August

 - sapphire : September

 - それ以外の場合 : Not Fount

def stone_birth
    print "ruby, peridot, sapphire 入力 : "
    stone = gets.chomp

    case stone
        when "ruby"
            puts "Ruby!!"
        when "peridot"
            puts "Peridot!!"
        when "sapphire"
            puts "Sapphire!!"
        else
            puts "Nou Found"
    end
end

stone_birth()


 

問題
 1. ユーザーから入力を受け取ります(gets.chomp使用)。
 2. 入力された値が "red"、 "blue"、 "green" のいずれかの場合、その色の名前を出力します(例: "You choseled")。
 3. 入力された値が上記の3色のいずれかでない場合、"Unknowncolor"を出力します。
 4. 入力された値が "exit" の場合、プログラムを終了します。

 

def color
    print "colorを入力してください : "
    hu_color = gets.chomp

    case hu_color
    when "red", "blue", "green"
        puts "あなたの色は #{hu_color} です。"
    when "exit"
        puts "お疲れ様でした!"
    else
        puts "間違い"
    end
end
color()

 

 

 

 

 

728x90
반응형
LIST

'Ruby > Ruby-日本語' 카테고리의 다른 글

Ruby FizzBuzzメソッド  (0) 2023.12.15
Ruby Method  (0) 2023.12.15
Ruby 演習問題 - テーマパークの入場料計算  (0) 2023.12.14
Ruby 条件分岐 if  (0) 2023.12.14
Ruby 真偽値と論理演算子  (0) 2023.12.14