Я часто слышал, что использование break
s в Java считается плохой практикой, но, прочитав некоторые темы на Stack Overflow, я увидел иное. Многие говорят, что в определенных случаях это приемлемо.
Я немного запутался в том, что является плохой практикой в этом случае.
Для Project Euler: проблема 7 я создал приведенный ниже код. Задача заключалась в том, чтобы найти 10001-е простое число.
int index = 2, count = 1, numPrime = 1;
while (true) {
index++;
if (isPrime(index)) {
count = index;
numPrime++;
}
if (numPrime >= 10001)
break;
}
System.out.println(count);
Это вернет правильный ответ (через 21 мс), но не упустил ли я серьезное предупреждение? На 100% возможно создать цикл while без перерыва, но я считаю, что это немного легче выполнить.
Я использую break;
плохую практику? Я знаю, что всегда есть способ использовать его, но неужели здесь так ужасно?
Большое спасибо
Юстиан
ИЗМЕНИТЬ
Вот мой код isPrime (). Я мог бы также оптимизировать это, пока я занимаюсь этим.
public static boolean isPrime(long num) {
if (num == 2)
return true;
if (num % 2 == 0 || num <= 0)
return false;
for (long i = 3; i * i <= num; i += 2)
if (num % i == 0)
return false;
return true;
}
for (int i = 1; i <= 10001; i++) {
вместо более распространенногоfor (int i = 0; i < 10001; i++) {
. - person Justian Meyer   schedule 30.07.2010