Java で sを使用することは悪い習慣と見なされているとよく耳にbreak
しますが、スタック オーバーフローに関するいくつかのスレッドを読んだ後、そうではないことがわかりました。多くの人は、場合によっては許容できると言っています。
この場合、何が悪い習慣であるか、そうでないかについて少し混乱しています。
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);
これは (21ms で) 正しい答えを返しますが、重大な警告を見落としているのでしょうか? ブレークなしで while ループを作成することは 100% 可能ですが、これを実行する方が少し簡単であることがわかります。
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;
}