前提
Javaでじゃんけんを5回繰り返すゲームを作っています。またこのゲームは自分が勝てば強制的に終了するものです。
コンパイルは無事できたのですが、自分が勝つ手であったとしてもじゃんけんの勝敗判定が最後のelse以降のコンピュータが勝つものになってしまいます。そのため、適切な結果が反映されるようご教授いただきたいです。
ルール
・BufferedReaderで入力する文字はP,G,Tのいずれか
・コンピュータの手はMath.random()を使って出力
実現したいこと
勝敗結果が適切になるようにする
発生している問題・エラーメッセージ
全てコンピュータの勝ちになる
該当のソースコード
Java
1import java.io.*; 2 3public class Janken { 4 public static void main (String [] args) throws IOException{ 5 for (int i = 0; i < 5; i++){ 6 System.out.println("パー(P), グー(G), チョキ(T)"); 7 8 BufferedReader br = 9 new BufferedReader (new InputStreamReader (System.in)); 10 11 String str = br.readLine(); 12 13 int Cpu = (int) (Math.random() * 3 ); 14 15 if (Cpu == 0) { 16 System.out.println("コンピューター: G"); 17 } else if (Cpu == 1) { 18 System.out.println("コンピューター: T"); 19 } else { 20 System.out.println("コンピューター: P"); 21 } 22 23 if ((str == "G" && Cpu == 0) || (str == "T" && Cpu == 1) || (str == "P" && Cpu == 2)) { 24 System.out.println("あいこ"); 25 } else if ((str == "G" && Cpu == 1) || (str == "T" && Cpu == 2) || (str == "P" && Cpu == 0)){ 26 System.out.println("あなたの勝ち"); 27 break; 28 } else { 29 System.out.println("コンピュータの勝ち"); 30 } 31 } 32 } 33}
試したこと
BufferedReaderにより入力した文字がじゃんけんの勝敗判定のif文とリンクしていないという仮説を立て、入力した文字を一度変数に代入する等を考えたが行き詰まってしまった。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/12 06:58