実現したいこと
以下のように、コンピューターがランダムに生成した数字(「出た数字:」)に対して、ユーザーの数字が大きいか小さいかを予想するゲームを作りたい。
質問
ソースコードを出力すると、↓ここまでは表示されるのですが、その後ユーザーが「0か1」を入力すると、ゲームの結果ではなく再び以下の出力結果が表示されてしまいます。
恐らくif文がうまく作動していないようなので、if文が作動していない原因をご教示いただけないでしょうか?
出た数字: 1 あなたの選択は?(0 : Small 1 : Big):
ソースコード
Java
1package chapter12; 2 3import java.util.Random; 4import java.util.Scanner; 5 6public class BigOrSmall { 7 8 public static void main(String[] args) { 9 10 //最初にコンピュータがランダムに 2 - 8 の数字を選ぶ 11 boolean isContinue = true; 12 while (isContinue) { 13 14 //String[] number = {"2","3","4","5","6","7","8"}; 15 16 Random random = new Random(); //randomな数字を生成する下準備 17 int comNumber = random.nextInt(7); //変数「comNumber」にランダムな数字1~7を入れた 18 System.out.println("出た数字: " + comNumber); //変数「comNumber」を出力 19 20 Scanner scanner = new Scanner(System.in); //変数「userNumber」に自由に数字を入れる下準備 21 System.out.print("あなたの選択は?(0 : Small 1 : Big): "); 22 int userNumber = scanner.nextInt(); 23 24 if (userNumber == comNumber) { 25 System.out.println("Draw"); 26 } else if (userNumber < comNumber) { 27 if (userNumber == 0) { 28 System.out.println("Lose.."); 29 if (userNumber == 1) { 30 System.out.println("Win!"); 31 } else if (userNumber > comNumber) { 32 if (userNumber == 0) { 33 System.out.println("Win!"); 34 if (userNumber == 1) { 35 System.out.println("Lose.."); 36 } 37 } 38 39 System.out.println("もう一度プレイしますか?(0: No 1:Yes)"); 40 int ContinueNum = scanner.nextInt(); 41 if (ContinueNum != 1) { 42 isContinue = false; 43 System.out.println("プレイを終了します"); 44 break; 45 } 46 47 } 48 } 49 } 50 } 51 52 } 53}
試したこと
・if文の中にif文を入れる方法などを調べた
補足情報(FW/ツールのバージョンなど)
言語:Java
開発環境:Eclipse
Version : 2022-12 (4.26.0)

回答1件
あなたの回答
tips
プレビュー