在方法中从 1-10 生成 3 个随机数字的问题

我有这个代码


 public int luckyNumbers() {

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

    }

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

}

当我在我的主要课程中调用它时,我只得到一个号码。我在哪里犯错了?这是我在课堂上的方法。是的,我想用for循环在1-10范围内生成3个随机数。我找到了一些答案,但在Java中没有,也没有for循环。抱歉问


米脂
浏览 455回答 2
2回答

交互式爱情

为了解释为什么您的代码不返回 3 个值,每当您调用您的方法时,for 循环都会运行 3 次但什么也不做,因为循环内没有代码。return 语句计算一个随机值并返回该值。所以实际上,当您调用一次 luckyNumbers() 方法时,只返回一个值。要使用 for 循环根据您的想法生成 3 个随机数,您可以执行以下操作:public void luckyNumbers() {&nbsp; &nbsp; for (int i = 1; i <= 3; i++) {&nbsp; &nbsp; //Print random number here&nbsp; &nbsp; System.out.print((Math.random() * 10));&nbsp; &nbsp; }}另一种简单的方法是调用此 luckyNumbers() 方法 n 次以从另一个方法返回 n 个随机数。如果您的目标是一次返回 3 个幸运数字,则根据您的要求将生成的随机数添加到整数数组或 ArrayList 中并返回。

BIG阳

LuckyNumbers 到目前为止还可以,但是它给出了数字[0..9],所以+ 1:;class Test {&nbsp; public int luckyNumbers() {&nbsp; &nbsp;return (int) (Math.random() * 10) + 1;&nbsp; }..并且在主要方法中通常(使用System.out.println()):&nbsp; public static void main(String... args) {&nbsp; &nbsp; Test testObj = new Test();&nbsp; &nbsp; for (int i = 1; i <= 3; i++) {&nbsp; &nbsp; &nbsp; System.out.println(testObj.luckyNumbers());&nbsp; &nbsp; }&nbsp; }}编辑:瞧(不在主要方法中,但后来(为什么不!?)void):public void luckyNumbers() {&nbsp; for (int i = 1; i <= 3; i++) {&nbsp; &nbsp; System.out.println((int) (Math.random() * 10) + 1);&nbsp; }}public static void main(String... args) {&nbsp; &nbsp;new Test().luckyNumbers();}编辑2:瞧,3 个数字 [1-10]:public int[] luckyNumbers() {&nbsp;return new int[] {&nbsp; &nbsp;Math.random() * 10) + 1,&nbsp; &nbsp;Math.random() * 10) + 1,&nbsp;&nbsp; &nbsp;Math.random() * 10) + 1&nbsp;};}EDIT3(drawLuckyUsers 方法):输入:所有用户的列表,带有个人幸运数字 [1-10]输出:获奖用户列表public java.util.List<User> drawLuckyUsers(java.util.List<User> allUsers) {&nbsp; &nbsp;//helper structure to map all users by luckyNumber&nbsp; &nbsp;java.util.Map<Integer, List<User>> helper = new java.util.TreeMap<>();&nbsp; &nbsp;for (User u : allUsers) {&nbsp; &nbsp; &nbsp; if(helper.conatins(u.getLuckyNumber())) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;helper.get(u.getLuckyNumber()).add(u);&nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List<User> tmp = new ArrayList<>(2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmp.add(u);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;helper.put(u.getLuckyNumber(), tmp);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;}&nbsp; &nbsp;java.util.List<User> winner = new java.util.ArrayList<>();&nbsp; &nbsp;for(int i = 0; i < 3; i++) {&nbsp; &nbsp; &nbsp; &nbsp;winner.addAll(helper.get(luckyNumbers()));&nbsp; &nbsp;}&nbsp; &nbsp;return winner;}与..luckNumbers() v1:public int luckyNumbers() {&nbsp; return (int) (Math.random() * 10) + 1;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java