Случайные отличные числа во вложенном цикле - PullRequest
2 голосов
/ 07 мая 2019

Я записался на курс 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 число и помещало его везде.

Ответы [ 2 ]

2 голосов
/ 07 мая 2019

Вы должны попробовать что-то вроде этого.Помещая случайную переменную внутри цикла, мы будем каждый раз получать новое случайное число.

        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();
        }
1 голос
/ 07 мая 2019

Простой:

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

Эта строка получает новое случайное число и присваивает его локальной переменной.

Ваш код выполняет приведенный выше оператор один раз перед циклом for.А затем ваш цикл печатает то, что вы положили в эту локальную переменную.

Если вы хотите, чтобы это происходило так, что вы меняете случайное число несколько раз, рассмотрите возможность его перемещения в ваш цикл.

Это все, что нужно для этого.

...