0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

if,else問題(演算子) police_trouble

Last updated at Posted at 2022-07-23

問題

以下の要件を満たす police_troubleメソッドを実装しましょう。

あなたは警官です。aとb二人の容疑者の取り調べをしています。このとき、次のルールで証言の真偽判定を行います。
※問題文で登場したaとb二人の容疑者は、今回実装するpolice_troubleメソッドの引数として取り扱っていきます。

第一引数aと第二引数bどちらの証言も真(true)であれば、Trueを出力すること
第一引数aと第二引数bどちらの証言も偽(false)であれば、Trueを出力すること
第一引数aと第二引数bで証言の真偽が一致しない場合であれば、Falseを出力すること

雛形

def police_trouble(a, b)
  # ここに条件式を記述する
end

# 呼び出し例
police_trouble(true, true) 
police_trouble(false, false)
police_trouble(true, false) 

出力例

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

論理演算子

今回のように2つ以上の条件(例 aはbと等しい、かつcはdより大きい 等)を組み合わせる場合は以下のような論理演算子を使う。

# aもbもtrueの場合にtrue 
a && b

# aかbのどちらかがtrueの場合にtrue
a || b 

# aがtrueの場合にfalse、aがfalseの場合にtrue
!a

解答

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

police_trouble(true, true) 
police_trouble(false, false)  
police_trouble(true, false) 

if文で冒頭で述べた条件に当てはまるように記述。

1番目どっちの証言もTrueと言うなら(a && b)
police_trouble(true, true) → True
2番目の条件は1番目の条件と逆でaもbもfalseと言う。
!を付け加えればFalseの場合にTrueと返すので(!a && !b)
police_trouble(false, false)→ True
3番目はどっちの証言も一致しない、aがTrueと言ってbがFalseと言う。
||を使って1番目と2番目の条件を組み合わせているがこれはどちらか条件が一致すればTrueという事だがどちらにも当てはまらないのでFalseが返ってくる。
police_trouble(true, false) → False

0
0
2

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?