LoginSignup
0
0

More than 3 years have passed since last update.

3つの値の正誤を確かめる条件式~演算子,論理積~

Last updated at Posted at 2020-08-13

【概要】

1.結論

2.なぜ単純にA=B=Cではいけないのか

3.ここから学んだこと

4.補足

1.結論

if 変数[A] == 変数[B] && 変数[A] == 変数[C]

2.なぜ単純にA=B=Cではいけないのか

ではここで、

if number[0] = number[1] = number[2]

にしたらいいのではないかと思うのですが、それではうまくいきません。
[0]と[1]と[2]がバラバラの数字をとってきた場合でもtrueを返します。
そもそも”=”が数学的意味のイコールではなく、
代入の意味となってしまうので、[2]➡︎[1]➡︎[0]へ代入するという意味になります。
なので、数が違ってもtrueを返すということになります。

また、

number[0] == number[1] == number[2]

になりますとsyntaxerrorが起きてしまします。
構文エラーなので機械が上の式を認識しておりません。
おそらくA==Bだけにしか対応できないものと思われます。

rand(0)で強制的に同じ数にしてもsytaxerrorとなることから
”==”はやはりA、Bと二つの値(式)にしか使えないことだと思われます。

3.ここから学んだこと

i)論理積をうまく使うことで、
 3つの数字をイコールにすることができることを知りました!

ii)自分でいろんなことを試す癖がつき、
論理積以外にも新たな知識を得ることができました!

4.補足

丁寧に書くと、下記のようになります。

class Machine
  def game_play
    number = []
    3.times do 
      number << rand(0..9)
    end
     puts "マシーンの数字は#{number.join}です!"




      こちらの式です➡︎ if number[0] == number[1] && number[0] == number[2]




       puts "大当たり"
    else
      puts "はずれ"
    end 
  end
end

==とは、A==Bであれば、"A=Bが等しければtrueを返す"という意味です。
&&とは、A&&Bであれば、"AかつB"であればtrueを返す"という意味です。

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