Вы используете условие if
и ожидаете операцию al oop. if
условие проверяется только один раз, и оно предоставит результат в соответствии с оператором true или false.
if (a.size() <= 6) {
a.add(int_random);
} else {
System.out.println(a);
}
вы можете немного изменить logi c в соответствии с тем, что вам нужно.
while (a.size() <= 6) {
a.add(int_random);
}
System.out.println(a);
Теперь l oop сформировался, но вам снова чего-то не хватает. Генерация случайных чисел должна происходить внутри l oop, иначе это будет одна и та же переменная случайного числа каждый раз, и HashSet будет заменять одно и то же значение снова и снова, тогда вы получите бесконечное l oop.
поэтому вам нужно добавить генерацию случайных чисел внутри while l oop вот так.
while (a.size() <= 6) {
int_random = rand.nextInt(upperbound);
a.add(int_random);
}
System.out.println(a);
Теперь вам не нужно определять переменную случайного числа выше, потому что вы всегда генерируете внутри l oop перед добавлением HashSet.
Это полный код.
public class LotteryNumberGenerator {
public static void main(String args[]) {
Random rand = new Random();
int upperbound = 100;
Set<Integer> a = new HashSet<Integer>();
while (a.size() <= 6) {
int int_random = rand.nextInt(upperbound);
a.add(int_random);
}
System.out.println(a);
}
}
если вы хотите установить только 6 чисел, измените условие, подобное этому. <=
следует изменить на <
while (a.size() < 6) {