LoginSignup
0
0

More than 3 years have passed since last update.

if文練習

Posted at

if文を使いこなそう!

問題
あなたは警官です。aとb二人の容疑者の取り調べをしています。
どちらも証言がTrue、またはFalseであればその証言はTrueです。
しかしどちらかがFalseでTrueであればその証言はFalse、と出力するメソッドを定義しなさい。

呼び出しは以下のように行う
police_trouble(a, b)


police_trouble(true, false) → False
police_trouble(false, false) → True
police_trouble(true, true) → True

上記のような問題があったとしましょう。このようなif文はどのように実装すれば良いでしょうか。
私は最初下記のようなメソッドを実装しました。

def police_trouble(a, b)
  if (a == true) && (b == true)
      puts "True"
  elsif (a == false) && (b == false)
      puts "True"
  else
      puts "False"
  end
end

a = true
b = true
police_trouble(a, b)

aとbがtrueならTrue
aとbがfalseならTrue
問題の指示通り実装ができていますね。
しかし、これよりももっとシンプルな方法があります。

今回の問題を置き換えて考えると、aとbの値が一致していればTrueと出力すれば良いと言うことになります。
そのため下記のような書き方ができます。

def police_trouble(a, b)
  if a && b || !a && !b
    puts "True"
  else
    puts "False"
  end
end

a = true
b = true
police_trouble(a, b)

aとbが一致していればTrue、それ以外ならFalseと返すプログラムですね。

考え方を整理して、シンプルに書くことを磨いていきたいです。

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