【问题标题】:Random distinct numbers in nested loop嵌套循环中的随机不同数字
【发布时间】:2019-09-24 21:05:30
【问题描述】:

我已经注册了 java 课程并完成了嵌套循环,但我正在尝试使用它并想要制作不同随机数的列,但它会在所有列上打印 1 个数字。我怎样才能让它打印随机数到每个插槽(数字可以重复但不能像现在这样复制)

    Random rng = new Random();
    int chance = rng.nextInt((100)+1);
    for (int row = 0; row < 5; row ++) {
        System.out.print("row " + row + ": ");
        for (int col = 0; col < 10; col++) {
            System.out.print(chance + " ");
        }
        System.out.println();
    }

这是结果:

第 0 行:13 13 13 13 13 13 13 13 13 13

第 1 行:13 13 13 13 13 13 13 13 13 13

第 2 行:13 13 13 13 13 13 13 13 13 13

第 3 行:13 13 13 13 13 13 13 13 13 13

第 4 行:13 13 13 13 13 13 13 13 13 13

但我需要的是随机生成每个数字,而不仅仅是滚动 1 个数字并将其放在任何地方。

【问题讨论】:

  • 尝试计算chance inside循环。
  • 将机会变量的赋值移动到嵌套的 for 循环中。
  • 所以这是非常简单的解决方案,谢谢!完美运行

标签: java for-loop random nested-loops


【解决方案1】:

你应该试试这样的。 将机会变量放在循环中每次都会提供一个新的随机数。

        Random rng = new Random();
        for (int row = 0; row < 5; row ++) {
            System.out.print("row " + row + ": ");
            for (int col = 0; col < 10; col++) {
                int chance = rng.nextInt((100)+1);
                System.out.print(chance + " ");
            }
            System.out.println();
        }

【讨论】:

    【解决方案2】:

    简单:

    int chance = rng.nextInt((100)+1);
    

    该行会为您获取一个新的随机数并将其分配给您的局部变量。

    您的代码在 for 循环之前执行上述语句一次。然后你的循环打印你放入该局部变量的内容。

    如果您希望重复“给我一个随机数”,请考虑将其移入您的循环中。

    这就是全部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2022-01-04
      • 2021-01-05
      相关资源
      最近更新 更多