Я делаю проект для онлайн-курса.Я не хочу, чтобы сгенерированные компьютером координаты (xOfCompShips, yOfCompShips) повторялись или были такими же, как введенные пользователем (xOfPlayerShips, yOfPlayerShips).Таким образом, в случае, если сгенерированы те же координаты, оператор if уменьшит значение i и заставит цикл запуститься еще раз, заменив дублированные координаты.Распечатав строки для отладки, я обнаружил, что оператор break, по-видимому, разрывает цикл for с помощью k, и элемент управления возвращается к циклу for с i и без каких-либо новых значений, назначаемых xOfCompShips, yOfCompShips (или, возможно, таким же значениям, переназначаемым вих), элемент управления возвращается к циклу for с k и снова обратно к циклу for с i, и он продолжает идти вперед и назад.
Я пытался удалить оператор break, но затем, если первые случайные координатыдубликат пары, доступ к массиву для индекса = -1.
for(int i = 0; i < xOfCompShips.length; i++) {
xOfCompShips[i] = (int)Math.floor(Math.random() * 10);
yOfCompShips[i] = (int)Math.floor(Math.random() * 10);
for(int k = 0; k < xOfPlayersShips.length; k++) {
if((xOfCompShips[i] == xOfCompShips[k] && yOfCompShips[i] == yOfCompShips[k])
|| (xOfCompShips[i] == xOfPlayersShips[k] && yOfCompShips[i] == yOfPlayersShips[k])){
i--;
break;
}
}
}
Я ожидаю, что новые случайные значения будут назначены для xOfCompShips и yOfCompShips для каждого оператора if.