前回のプログラムでは勝敗判定が決定したあとも、それ以降のプログラムが実行されています。
確認するために、前回のプログラムを変更します。
「#」以降の行はコメントとして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」についてはこちらを参照。
最近のコメント