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

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

在方法中從 1-10 生成 3 個隨機數字的問題

在方法中從 1-10 生成 3 個隨機數字的問題

米脂 2022-05-21 17:16:36
我有這個代碼 public int luckyNumbers() {    for (int i = 1; i <= 3; i++) {    }    return (int) (Math.random() * 10);}當我在我的主要課程中調用它時,我只得到一個號碼。我在哪里犯錯了?這是我在課堂上的方法。是的,我想用for循環在1-10范圍內生成3個隨機數。我找到了一些答案,但在Java中沒有,也沒有for循環。抱歉問
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

為了解釋為什么您的代碼不返回 3 個值,每當您調用您的方法時,for 循環都會運行 3 次但什么也不做,因為循環內沒有代碼。return 語句計算一個隨機值并返回該值。所以實際上,當您調用一次 luckyNumbers() 方法時,只返回一個值。


要使用 for 循環根據您的想法生成 3 個隨機數,您可以執行以下操作:


public void luckyNumbers() {

    for (int i = 1; i <= 3; i++) {

    //Print random number here

    System.out.print((Math.random() * 10));

    }

}

另一種簡單的方法是調用此 luckyNumbers() 方法 n 次以從另一個方法返回 n 個隨機數。


如果您的目標是一次返回 3 個幸運數字,則根據您的要求將生成的隨機數添加到整數數組或 ArrayList 中并返回。


查看完整回答
反對 回復 2022-05-21
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

LuckyNumbers 到目前為止還可以,但是它給出了數字[0..9],所以+ 1:;


class Test {


  public int luckyNumbers() {

   return (int) (Math.random() * 10) + 1;

  }

..并且在主要方法中通常(使用System.out.println()):


  public static void main(String... args) {

    Test testObj = new Test();

    for (int i = 1; i <= 3; i++) {

      System.out.println(testObj.luckyNumbers());

    }

  }

}

編輯:

瞧(不在主要方法中,但后來(為什么不???)void):


public void luckyNumbers() {

  for (int i = 1; i <= 3; i++) {

    System.out.println((int) (Math.random() * 10) + 1);

  }

}

public static void main(String... args) {

   new Test().luckyNumbers();

}

編輯2:

瞧,3 個數字 [1-10]:


public int[] luckyNumbers() {

 return new int[] {

   Math.random() * 10) + 1,

   Math.random() * 10) + 1, 

   Math.random() * 10) + 1

 };

}

EDIT3(drawLuckyUsers 方法):

輸入:所有用戶的列表,帶有個人幸運數字 [1-10]

輸出:獲獎用戶列表

public java.util.List<User> drawLuckyUsers(java.util.List<User> allUsers) {

   //helper structure to map all users by luckyNumber

   java.util.Map<Integer, List<User>> helper = new java.util.TreeMap<>();

   for (User u : allUsers) {

      if(helper.conatins(u.getLuckyNumber())) {

         helper.get(u.getLuckyNumber()).add(u);

      } else {

         List<User> tmp = new ArrayList<>(2);

         tmp.add(u);

         helper.put(u.getLuckyNumber(), tmp);

      }

   }

   java.util.List<User> winner = new java.util.ArrayList<>();

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

       winner.addAll(helper.get(luckyNumbers()));

   }

   return winner;

}

與..luckNumbers() v1:


public int luckyNumbers() {

  return (int) (Math.random() * 10) + 1;

}


查看完整回答
反對 回復 2022-05-21
  • 2 回答
  • 0 關注
  • 371 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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