[Ruby]条件分岐と比較演算子
条件分岐と比較演算子
ここでは自分がRubyの勉強して覚えたことを忘れないように書いていこうと思います
if文による条件分岐
[ruby] n = 1 if n == 1 puts "正解" else puts "不正解" end [/ruby]上記の例ではn変数に1が入った場合、「正解」が表示され、他の数字が入った場合「不正解」が表示されます。
※注意するポイントはendをつけ忘れないようにすること。
次はelsifを使ってみます
[ruby] n = rand(1..10) * 10 print "#{n}点!" if n == 100 puts "君には負けたよ!" elsif n >= 70 puts "すごく良い!" else puts "問題外だな!" end [/ruby]上の例では、ランダムで1〜10の数字が選択されたと同時にその数字に10かけています。
その上で、100が出た場合、70以上だった場合、それ以外だった場合として表示文を分岐しています。
複数の条件を組み合わせる
複数の条件を組み合わせる時の一つ「&&」を使います。
使い方は、条件式 && 条件式のように使います。全ての条件が一致した場合にのみ、実行されます。
[ruby] n = rand(1..10) * 10 print "#{n}点か!" if n == 100 puts "君は最高だ!" elsif n > 70 && n <=99 puts "惜しい!もう少し!" elsif n >= 30 && n <=70 puts "まあまあ良いね!" else puts "残念だね…。諦めよう。" end [/ruby]上の例では、100が出た場合、70を超える数値かつ99以下の数値が出た場合、30以上かつ70以下の数値が出た場合、それ以外だった場合として表示文を分岐しています。
次は複数の条件を組み合わせる時の一つ「||」を使います。
[ruby] n = rand(0..23) print "現在の時刻は#{n}時です。" if n <= 7 || n >=19 puts "閉店中です。" else puts "開店中です。" end [/ruby]上の例では、7以下または19以上の場合、それ以外の場合として条件が分岐されています。
[番外編]文字列を数値に変換してみます
[ruby] number = "3.14" p number //"3.14"と表示される。(これはそのまま文字列が表示される。) p number.to_i //3と表示される。(integerのiで整数のこと。変換される。) p number.to_f //3.14と表示される。(浮動小数点のFloatのfで実数のこと。変換される。) p number.to_f * 12 //37.68 [/ruby][番外編]数値を文字列に変換してみます
[ruby] number = 3.14 p number //3.14と表示される。(これはそのまま数値が表示される。) p number.to_i //3と表示される。(integerのiで整数のこと。変換される。) p number.to_s //"3.14"と表示される。(文字列に変換される) [/ruby][番外編]某イタリアンレストランで食事した時の計算
(25%引きクーポン券所持・人数は3人・メニューは税抜)
注文内容はパスタとピザとサラダを2つ。
[ruby] pasta = 980 pizza = 1980 salad = 530 price = pasta + pizza + salad * 2 puts "合計は#{price}円です。" discount_price = (price * 0.75).to_i puts "25%引きクーポンを使った場合、#{discount_price}円です。" amount = (discount_price * 1.08).to_i puts "税込金額は#{amount}円です。" person = 3 amount_per_person = amount / person remeinder = amount % person puts "一人当たり#{amount_per_person}円です。余りは、#{remeinder}円です。" [/ruby]
合計は4020円です。
25%引きクーポンを使った場合、3015円です。
税込金額は3256円です。
一人当たり1085円です。余りは、1円です。