3. 比較演算子一覧
Rubyでの論理式 数学的な意味 意味
a == b a=b a と b は等しい
a != b a≠b a と b は異なる
a>b a>b a は b より大きい
a >= b a≥b a は b 以上
a<b a<b a は b より小さい
a <= b a≤b a は b 以下
16. case を使った多重分岐
判定条件が多数ある場合、if-elseif-else 構文の代りに
case文や範囲リテラル使うと、可読性が高まる
age = ARGV[0].to_i case age
if age == 0 || age == 1 when 0, 1
・・・ ・・・
elsif age >= 2 && age <= 11 when 2 .. 11
・・・ ・・・
elsif age >= 12 && age <= 17 when 12 .. 17
・・・ ・・・
elsif age >= 18 && age <= 29 when 18 .. 29
・・・ ・・・
elsif age >= 30 && age <= 60 when 30 .. 60
・・・ ・・・
else else
・・・ ・・・
end end
17. case1.rb
1 # case1.rb
2 age = ARGV[0].to_i
3 case age
4 when 0, 1
5 guest = “赤ちゃん”
6 when 2 .. 11
7 guest = “お子さま”
8 when 12 .. 17
9 guest = “おませさん”
10 when 18 .. 29
11 guest = “お若いかた”
12 when 30 .. 60
13 guest = “おとなの方”
14 else
15 guest = “お年寄り”
16 end
17 puts “#{guest}さま、いらっしゃいませ。”
18. 倍数判定
1 # olympicyear.rb
2 year = ARGV[0].to_i
3 if year % 4 == 0 then
4 puts “#{year} 年には夏のオリンピックが開かれます。”
5 end
1 # toshionna.rb
2 age= ARGV[0].to_i
3 if age % 12 != 0 then
4 puts “あなたは年女ではありません。”
5 end
19. 倍数判定
1 # olympicyear.rb
2 year = ARGV[0].to_i # 4の倍数なら剰余が0になるので
3 if year % 4 == 0 then # 評価結果は true となる。
4 puts “#{year} 年には夏のオリンピックが開かれます。”
5 end
西暦 ÷ 4 の余り
1 # toshionna.rb
2 age= ARGV[0].to_i # 同様に年齢が12の倍数かどうか
3 if age % 12 != 0 then # を評価(倍数で無い場合 true)
4 puts “あなたは年女ではありません。”
5 end
年齢 ÷ 12 の余り
20. 偶数・奇数判定
1 # oddeven.rb
2 n = ARGV[0].to_i
3 if n % 2 == 0 then
4 puts “#{n} は偶数です。”
5 else
6 puts “#{n} は奇数です。”
7 end
21. 偶数・奇数判定
1 # oddeven.rb
2 n = ARGV[0].to_i
3 if n % 2 == 0 then
4 puts “#{n} は偶数です。”
5 else
6 puts “#{n} は奇数です。”
7 end
偶数なら2の倍数なので、n % 2 の結果が0の場合と
それ以外(1の場合)で、偶数・奇数の判定が出来る
33. ド・モルガンの定理
A B A B ( A B)
A B
A B ( A B)
ド・モルガンの定理は上記の関係を示したもの
34. プログラム文へ置き換え
if x <= 2000 && x % 12 == 6 then
# (IV) A B
elsif x <= 2000 && x % 12 != 6 then
# (II) A B
elsif x > 2000 && x % 12 == 6 then
# (III) A B
else
# (I) A B
end