为了账号安全,请及时绑定邮箱和手机立即绑定

在方法中从 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 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号