嘗試在控制猜數游戲的 while 循環中創建一個隨機數生成器。問題是“太高”和“太低”提示會說一個數字(例如:35)太低,但隨后會說嵌套輸入數字(例如:36)太高。然后,當我在嵌套的 while 循環中移動調用隨機函數時,它每次都會生成相同的隨機數。我嘗試將對隨機函數的調用移動到我最內層的循環,但隨后它生成了相同的隨機數。當前,它在外部 while 循環中,但隨后出現高/低問題import java.util.Scanner;import java.util.Random;public class numberGuessingGame{ public static void main (String[] args) { int randomNumber, userNumber = 0, guesses = 0, correct; final int MAX = 100; char playAgain, playGame = 'y'; //ask user if they wish to play System.out.println("Would you like to play the Number Guessing Game? y / n"); Scanner scan = new Scanner (System.in); playGame = scan.next().charAt(0); Random generator = new Random(); //while loop to continue to exacute game as long as user enters 'y' while (playGame == 'y'){ if (playGame != 'y') break; randomNumber = generator.nextInt(MAX) + 1; //flag correct = 0; //loop to control the round while (correct == 0) { //get user number System.out.println("Please pick a number between 1 and 100."); userNumber = scan.nextInt(); //high and low sugguestion if (userNumber > randomNumber) System.out.println("Number is too high, try something lower."); if (userNumber < randomNumber) System.out.println("Number is too low, try something higher."); if (userNumber == randomNumber){ System.out.println("That number is correct!"); System.out.println("Would you like to play again? y/n"); playGame = scan.next().charAt(0); } guesses++; System.out.println("You have guessed " + guesses + " times!"); } }
2 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
我想建議您可能會考慮的一些更改:
使用
boolean
forcorrect
而不是int
在: 它是多余的之后立即刪除您的
if
聲明while
do-while
當循環必須至少執行一次時使用使用
Integer.compareTo
而不是單獨比較

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
你的內部循環不會終止,這就是為什么你有相同的 randomNumber,更改correct=0值以終止內部 while 循環
if (userNumber == randomNumber){
System.out.println("That number is correct!");
System.out.println("Would you like to play again? y/n");
playGame = scan.next().charAt(0);
correct=1; //Just to remove correct=0 value
}
添加回答
舉報
0/150
提交
取消