【概要】
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を返す"という意味です。