亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環內的隨機數生成器

循環內的隨機數生成器

收到一只叮咚 2023-04-13 14:45:26
嘗試在控制猜數游戲的 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個贊

我想建議您可能會考慮的一些更改:

  • 使用booleanforcorrect而不是int

  • 在: 它是多余的之后立即刪除您的if聲明while

  • do-while當循環必須至少執行一次時使用

  • 使用Integer.compareTo而不是單獨比較


查看完整回答
反對 回復 2023-04-13
?
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

}


查看完整回答
反對 回復 2023-04-13
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號