Компьютер генерирует пять чисел в диапазоне от 1 до 15 включительно... Код вроде написать удалось с проверкой на одинаковые числа и вроде все генерируется, но иногда при запуске на консоль ничего не выводится и цикл бесконечный, может кто подскажет что не так?
int random;
boolean check;
check = true;
int[] rand = new int[5];
for (int i = 0; i < rand.length; i++) {
while (true) {
random = 1 + (int) (Math.random() * 15);
for (int j = 0; j < rand.length; j++) {
if (rand[j] == random) {
check = false;
break;
}
}
if (check == true) {
break;
}
}
rand[i] = random;
}
for (int x : rand) {
System.out.println(x);
}
Как вариант еще так , через shuffle. Берете все числа от 1 до 15. Заполняете ими список. Перемешиваете его. Берете 5 элементов списка. :
List<Integer> list = new ArrayList<>();
for (int i = 1; i <16 ; i++ ){
list.add(i);
}
Collections.shuffle(list);
int[] rand = new int[5];
for (int i = 0; i < rand.length; i++){
rand[i] = list.get(i);
}
for (int x : rand) {
System.out.println(x);
}
Так посмотрите.
public static void main(String[] args) {
int random;
Set<Integer> unique = new LinkedHashSet<>(); // хранит в порядке добавления, если нужен упорядоченный то используйте TreeSet
while (unique.size() < 5) {
random = 1 + (int) (Math.random() * 15);
unique.add(random);
}
for (int x : unique) {
System.out.println(x);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я новичок в AWS у меня есть программа, которая делает некие операции над видео (конвертирует один формат в другой (есть два бакита в первый загружается...
Дана задача: Создать статический метод printMagazines(Printable[] printable) в классе Magazine, который выводит на консоль названия только журналовСоздать статический...
Необходимо написать программу, в которой при нажатии мышки создаётся квадратик синего цвета, при двойном нажатии на синий квадратик цвет...