Scanner in = new Scanner(System.in);
for (int j = 1; j < 8; j++) {
System.out.println("請輸入一個整數:");
int value = in.nextInt();
int ran = (int)(Math.random() * 100) + 1; // ❌ 每次迴圈都重新產生隨機數
if (value > ran) System.out.println("大了");
else if (value < ran) System.out.println("小了");
else System.out.println("恭喜你猜對了!");
}
每次玩家輸入,ran 都會重新隨機,導致「目標數字」不斷變動,玩家永無法猜中。
Scanner in = new Scanner(System.in);
int ran = (int)(Math.random() * 100) + 1; // ✅ 只生成一次,固定目標
for (int j = 1; j < 8; j++) {
System.out.println("請輸入一個整數:");
int value = in.nextInt();
if (value > ran) System.out.println("大了");
else if (value < ran) System.out.println("小了");
else {
System.out.println("恭喜你猜對了!你的戰鬥力是 " + j + "%");
break; // 猜中跳出
}
}
Random 類別而非 Math.random(),效能更好、支援種子可重現。Random rnd = new Random();
int target = rnd.nextInt(100) + 1; // [1, 100]
記住:**遊戲目標必須在迴圈外確立**,否則就不是猜數字,而是「追著移動的目標射擊」。