【Ruby】if文をもっと簡単に記述する
こんにちは😊Kintarouです。
現在エンジニア転職を目指してTECH CAMPにてプログラミング学習中です👨🎓
夢はフリーランスエンジニアになって働く人が働きやすいシステムを作ること!
と、愛する妻と海外移住すること🗽
プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry
if文おさらい
まずif文の基本からおさらいします。
真偽値
if文はその条件式が真と評価された場合のみ処理を実行し、偽と評価された場合はelseの後の処理を実行します。
真偽とは?
# 偽 ー false または nil false nil # 真 ー それ以外の全て(以下は全てtrue) # 例1) true 自体 true # 例2) すべての数値 1 0 -1 # 例3) すべての文字列 'true' 'false' ''
今回はあくまでRubyの場合で他の言語の場合nilは偽として扱わない場合があるのでご注意ください。
if文
前述のように真(true)の場合実行され、偽(false)の場合はelseの後の記述を実行します(elseが無い場合何も実行されません)。endでif文を終了します。
num = 1 if num == 1 puts 'numは1です' else puts 'numは1ではありません' end #=> 'numは1です'
if文を簡単に記述するあれこれ
一部を紹介します。
unless
真ではなく、偽の場合だけ実行して欲しいなどに使います。elseは使えますが、elsifは使えません。elseも、記述として「偽ではない(=真)場合」とコードが把握しづらくなるので、その場合if文を使った方が良さそうです。
num = 2 unless num == 1 puts 'numは1ではありません' end #=> 'numは1ではありません'
後置if
elseなどがなく、trueかfalseの場合に実行して欲しい句を記述する際に使えます。
num = 1 puts 'numは1です' if num == 1 #=>numは1です num = 2 puts 'numは1ではありません' unless num == 1 #=>numは1ではありません # 偽の記述をする時に if num == 1 false とは出来ません num = 2 puts 'numは1ではありません' if num == 1 false #=>syntax error
三項演算子
true/false の処理を1行で記述することができます。
# 通常のif文 num = 1 if num == 1 puts 'numは1です' else puts 'numは1ではありません' end #=> 'numは1です' # 三項演算子で記述した場合 num = 1 puts num == 1 ? "numは1です" : "numは1ではありません" #=> numは1です
構文としては
(条件式) ? (真の場合の句) : (偽の場合の句)
で表します。
注意点は「?」と「:」の前後に半角スペースを入れることです。(シンボルなど、一まとまりの句と読み取られてしまうため)
※ボリュームより可読性を考慮して下記のように記述するのもありです!
(条件式) ? (真の場合の句) : (偽の場合の句) # 例文の場合 num = 1 puts num == 1 ? "numは1です" : "numは1ではありません" #=> numは1です
以上!どなたかの参考になれば幸いです!