問題
こんなドリル問題がありました。
20時から翌朝7時までにオウムに喋られると問題があるのでその場合は「NG」、
それ以外は「OK」と出力するメソッドを作成します。
オウムが喋る時をture、喋らない時をfalseと入力することにし、時刻も同時に入力します。
呼び出し方:
parrot_trouble(talking, hour)
出力例:
parrot_trouble(true, 6) → NG
parrot_trouble(true, 7) → OK
parrot_trouble(false, 6) → OK
parrot_trouble(false, 7) → OK
どうやって条件式を書くか
この問題は2つの条件を満たした場合のみOKと出力する条件式を記述する必要があります。
それはtalkingが"true"かつ時間が7時〜19時の場合のみです。
それ以外はtalkingが"true"でattatositemo出力は"NG"です。
実際に条件式を記述してみましょう
条件式
def parot_trouble(talking, hour)
if (talking == true) && (7..19).cover?(hour)
puts "OK"
else
puts "NG"
end
end
※ご指摘をいただきまして2行目を一部修正を行いました。
1行目でメソッドを定義して引数talkingとhourを受け取ります
2行目ではtalkingがtrueかつhourが7~19の中の数字である場合を定義し
3行目でOKを出力します。
4行目のelseにてそれ以外の場合を指定し
5行目でNGを出力
この条件式により出題の要件を満たすことができます。
if文を制するものはプログラムを制する?
条件式はrailsではコントローラにてエラーハンドリングを行うのに使用されたり、プログラム中に出力を条件によって変えたりとあらゆる場面で使用します。
この条件式の扱いの理解を深めれば深めるほど複雑なロジックを組むことができたり、それを簡単に実装できたりとプログラマとしてのスキルが上がっていくと感じます。
無駄のなく、チーム開発でも他人が理解しやすいコードがかけるようにどんどん練習していきたいですね