0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

if分を極力シンプルに記述する

Posted at

指定された複数の引数をそれぞれの条件で四則計算するプログラムを記述した時に省力できる記述が多かったので可読性を上げることの意識を忘れない為にメモします。

プログラム内容

・メソッドの実引数として「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が真の時に偽、偽の時に真

演算子がそれぞれどの役割を持つのか考えて使いどころを覚える

以上になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?