前提
プログラミング初学者(1〜2ヶ月)の私が学習したことをまとめた内容です。
実際の現場では役に立たないことや間違っていることがある可能性があります。
お気づきの際はコメントいただければ幸いです。
Rubyのif,elseを使った条件式の練習問題をしたので、
解説しながら自分の考えをまとめていきます。
問
①変数numが1以上10以下のときtrueの時
②変数outsideがtrueであった時
①か②のどちらかを満たす時にtrue、それ以外をfalseと返すin1to10メソッドを作成する。
条件
&& ||を使って作ること。
&&と||について
まずは条件のにある**&&と||**とはなにかについて解説します。
&&と||は論理演算子と呼ばれ、前後の記述の真偽によってtrueかfalseを返す演算子です。
&&はaかつb
まず&はshift+6で入力できます。
&が2つつながって&&となると前後の記述が両方trueの時trueという意味になります。
例えば、
a && b
と書かれていれば、aもbもどちらも満たす時にtrueになる条件ということになります。
||はaまたはb
「|」はshift+¥で入力できます。
¥はキーボード右上のバックスペースの左側にあります。
||は、前後の記述どちらかを満たしていればtrueということになります。
a || b
と書かれていれば、aかbどちらかを満たす時にtrueになる条件ということになります。
論理演算子を使うときの注意点
論理演算子を含む条件式では、左辺から右辺へと順番に条件式を評価します。
この順で評価が確定したところで残りの評価は行われません。
a && bであれば、aがfalseなら全体としてfalseが確定されるため、Bがtrueかfalseの判定は行われません。
a || bであればaがtrueなら全体としてtrueとなるため、bがtrueかfalseかの判定は行われません。
回答
def in1to10(num,outside)
if (num<=10 && num=>1) || outside
puts "True"
else
puts "false"
end
end
num <= 10 && num >= 1
の記述で1以上かつ10以下の条件式ができています。
outsideの真偽判定について
変数での真偽判断(true/false)の場合は変数を記述するだけでその値が真か偽か評価してくれます。
わざわざ === trueといったような記述を行う必要はありません。
この記述によって1以上10以下がtrueの場合または、outsideがtrueの場合はTrueと出力し、それ以外はfalseと出力する記述が行えました。