指定された複数の引数をそれぞれの条件で四則計算するプログラムを記述した時に省力できる記述が多かったので可読性を上げることの意識を忘れない為にメモします。
プログラム内容
・メソッドの実引数として「1以上の正の整数」を3つ用意し、それぞれを仮引数a,b,c としてnumメソッド内で使用する
・第一引数と第二引数は足し算をし、変数abに代入する
・第三引数が3以下の場合は変数abを第三引数の値で割り、結果を出力する
・第三引数が4以上の場合は変数abを第三引数の値で掛け、結果を出力する
記述内容
def num(a, b, c)
ab = a + b
if c <= 3
answer = ab / c
puts answer
else c >= 4
answer = ab * c
puts answer
end
end
num(1,5,3)
num(1,5,5)
# 出力結果
#=> 2
#=> 30
見やすい書き方
def num(a, b, c)
ab = a + b
if c <= 3
puts ab / c
else
puts ab * c
end
end
2番目の書き方の方がシンプルで分かりやすい。
では1番目の書き方で必要のない省力できる部分はどこか
まずはここ、計算結果を出力する部分
answer = ab / c
puts answer
ここは一行でわざわざ変数に代入しなくても、そのまま計算式をputsすることで一行にまとめる事が出来る
puts ab / c
次にここ、第三引数が4以上の場合の記述
else c >= 4
answer = ab * c
puts answer
end
ここは if c <= 3 を記述している時点で第三引数が3より大きい場合に適用される部分なのでわざわざc >= 4と書く必要はなく、変数abを第三引数の値で掛け、結果を出力する記述をだけで充分。
else
puts ab * c
end
長くならないようになるべくコンパクトに
if 式
式が正だったときの処理
else
式が偽だったときの処理
end
プログラムを作る上で「if」文は絶体に避けては通れない構文であり、書き方によってコードの可読性が大きく損なわれる。
複数条件になると、パッと見でどんな処理がしたいのか分かりづらくなる。コードは基本的に他人が読んだ時に分かりやすいものを書くことを意識する。
x == y 等しい
x != y 等しくない
x < y xがyより小さい
x > y xがyより大きい
x <= y xがy以下
x >= y xがy以上
a && b aとbが共に真の場合に真
a || b aかbの少なくとも1つが真の場合に真
!a aが真の時に偽、偽の時に真
演算子がそれぞれどの役割を持つのか考えて使いどころを覚える
以上になります。