case..when文について
コーディングテスト対策をする上で、多くの場合if文による冗長なアルゴリズムが作成されていた為、その対応策の一つとして、case..when
構文に関して、再度学習した。その内容をここに記録する。
結論として、if文と役割はそこまで変わらないが、自分なりの利点にあげる。
- 可読性が上がる
- 変数を扱う場合はスタイリッシュになる。
ここから下は公文の説明になります。コードについては、コーディングテストの内容をそのままにしてあります。
制御構造 - 条件分岐 case..when文
if文の場合
if score >= 80
array << "A\n"
elsif score >= 70 && score < 80
array << "B\n"
elsif score >= 60 && score < 70
array << "C\n"
elsif score < 60
array << "D\n"
end
case..when文の場合
case score
when 80..100
array << "A\n"
when 70..79
array << "B\n"
when 60..69
array << "C\n"
when 0..59
array << "D\n"
end
最後のcase分では、同一の変数を扱っている利点を活かし、条件式において変数を省略できるという利点を持つ。この点がif文と比較し、優位にあると考えています。