第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何防止用戶重復(fù)輸入相同的號碼

如何防止用戶重復(fù)輸入相同的號碼

婷婷同學(xué)_ 2022-12-21 16:26:40
我正在用 java 創(chuàng)建一個(gè)程序,用戶必須猜測計(jì)算機(jī)生成的隨機(jī)數(shù),用戶總共有 20 次嘗試猜測這個(gè)數(shù)字,如果用戶重復(fù)輸入相同的數(shù)字,它應(yīng)該顯示一條錯誤消息并且沒有計(jì)數(shù)作為他們的猜測之一,但我不確定如何做到這一點(diǎn)。例如,如果用戶第一次猜測是 5,然后他們再次猜測 5,則會出現(xiàn)一條錯誤消息,提示“您已經(jīng)輸入了這個(gè)數(shù)字package guessinggame2;import java.util.Scanner;public class GuessingGame2 {  static Scanner kboard = new Scanner(System.in);  public static void main(String args[]) // start of main   {    System.out.println("Welcome to the guessing game, the computer will     generate a random number that you have to guess, good luck!");    int secret_number = 0;    int number_of_guesses = 0;    Scanner input = new Scanner(System.in);    int user_guess;    int used_number = 0;    secret_number = (int)(Math.random()*100) + 1;    System.out.println("The computer has generated it's number");    for(int i=0; i<20;i++) {      System.out.println("Please make your guess");      user_guess = kboard.nextInt();      number_of_guesses++;      if (user_guess == secret_number)      {        System.out.println("Your guess is correct it took you " +         number_of_guesses + " guesses");      }      else if  (user_guess < secret_number)      {        System.out.println("Your guess is too low try again");      }      else if (user_guess > secret_number)      {        System.out.println("Your guess is too high try again");      }      System.out.println (20 - number_of_guesses + " Guesses remaining");     }  }}
查看完整描述

3 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用 ArrayList 創(chuàng)建一個(gè)數(shù)組并為其命名(例如“entered_numbers”)

ArrayList<Integer> entered_numbers = new ArrayList<Integer>();


2. 每次用戶輸入一個(gè)數(shù)字時(shí),使用檢查contains()該數(shù)字是否在ArrayList 中。


如果是,請顯示您的消息(不要number_of_guesses++)

如果不是,請使用添加它add()并繼續(xù)您自己的檢查。


if(entered_numbers.contains(user_guess)) {

    System.out.println("You have already entered this number");

    continue;

} else {

    entered_numbers.add(user_guess);

    // Check if == secret number,

    // Check if < secret number,

    // Check if > secret number

}


其他人建議使用HashSets哪個(gè)對性能更好。

使用 ArrayList 的復(fù)雜度是 O(n),而 HashSet 是 O(1)。


我選擇了一種使用 ArrayList 的更簡單的方法,它不會對性能產(chǎn)生太大影響,因?yàn)槟粫?ArrayList 中存儲大量數(shù)據(jù)。


在此處查看有關(guān)復(fù)雜性的更多信息:https ://www.baeldung.com/java-collections-complexity


查看完整回答
反對 回復(fù) 2022-12-21
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

要研究的關(guān)鍵字:數(shù)組。

只需將用戶的所有數(shù)字存儲到這樣的數(shù)組中。然后,您可以在每次給出新數(shù)字時(shí)迭代該數(shù)組。當(dāng)您在該數(shù)組中找到該數(shù)字時(shí),您可以打印錯誤消息。

或者,您可以使用HashSet來存儲以前輸入的數(shù)字。集合有一個(gè)很好的方法contains(),它避免了數(shù)組的重復(fù)循環(huán)。但是HashSet之類的集合類有點(diǎn)高級,新手通常的做法是基于數(shù)組的解決方案。


查看完整回答
反對 回復(fù) 2022-12-21
?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以使用一組來跟蹤用戶提交的數(shù)字,例如


public class GuessingGame2 {


   static Scanner kboard = new Scanner(System.in);



   public static void main(String args[]) // start of main

   {


      System.out.println("Welcome to the guessing game, the computer will generate a random number that you have to guess, good luck!");


      int secret_number = 0;

      int number_of_guesses = 0;

      Scanner input = new Scanner(System.in);

      int user_guess;

      int used_number = 0;

      HashSet<Integer> user_inputs = new HashSet<>();


      secret_number = (int) (Math.random() * 100) + 1;

      System.out.println("The computer has generated it's number");


      for (int i = 0; i < 20; i++) {


         System.out.println("Please make your guess");

         user_guess = kboard.nextInt();

         if (!user_inputs.add(user_guess)) {

            System.out.println("Please provide another input");

            continue;

         }

         number_of_guesses++;


         if (user_guess == secret_number) {

            System.out.println("Your guess is correct it took you " +

                  number_of_guesses + " guesses");

         } else if (user_guess < secret_number) {

            System.out.println("Your guess is too low try again");

         } else if (user_guess > secret_number) {

            System.out.println("Your guess is too high try again");

         }


         System.out.println(20 - number_of_guesses + " Guesses remaining");



      }


   }


}


查看完整回答
反對 回復(fù) 2022-12-21
  • 3 回答
  • 0 關(guān)注
  • 145 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號