前回のプログラムでは勝敗判定が決定したあとも、それ以降のプログラムが実行されています。
確認するために、前回のプログラムを変更します。
「#」以降の行はコメントとしてRubyは実行しません。
goo = 1
par = 2
choki = 3
human_hand = rand(3)+1 #この部分を変更
computer_hand = rand(3)+1
print("引き分け判定を実行","\n") #追加
if computer_hand == human_hand then
print("引き分け","\n")
#exit #追加
end
print("グー判定を実行","\n") #追加
if human_hand == goo then
if (computer_hand - goo) == 2 then
print("You Win","\n")
#exit #追加
end
if (computer_hand - goo) == 1 then
print("You Lose","\n")
#exit #追加
end
end
print("パー判定を実行","\n") #追加
if human_hand == par then
if (computer_hand - par) == -1 then
print("You Win","\n")
#exit #追加
end
if (computer_hand - par) == 1 then
print("You Lose","\n")
#exit #追加
end
end
print("チョキ判定を実行","\n") #追加
if human_hand == choki then
if (computer_hand - choki) == -1 then
print("You Win","\n")
#exit #追加
end
if (computer_hand - choki) == -2 then
print("You Lose","\n")
#exit #追加
end
end
プログラムを実行するとcomputer_handとhuman_handの手が同じで引き分けの判定が表示された後も、
「グー、パー、チョキ判定を実行」という文がすべて表示されると思います。
たとえば「引き分け」の勝敗が決まった後にも、それ以降のプログラムが実行され、
「グー、パー、チョキ判定」をする「if文」が実行されています。「引き分け」で勝敗が決まっているので、
それ以降のプログラム実行は無駄です。
追加した「#exit」の「#」をすべて削除します。これで
「引き分け」の勝敗が決まった後、「グー、パー、チョキ判定を実行」というメッセージは表示されなくなります。
「exit」を実行した段階でプログラムが終了し、それ以降のコードは実行されなくなりました。
「exit」についてはこちらを参照。
最近のコメント