剛開始學習java,我不明白我的代碼有什麼問題。 PrimeIterator應該生成素數的無限量(從3號開始),但是當我打印輸出獲得:3,5,7,9,11,13,15等標記爲「繼續」似乎不起作用
public class Prime {
PrimeIterator iter = new PrimeIterator();
private class PrimeIterator implements java.util.Iterator<Integer>
{
int numb = 1;
public boolean hasNext()
{
return true;
}
public Integer next()
{
nextCandidate:
do{
numb += 2;
int numbSqrt = (int)java.lang.Math.sqrt(numb);
for (int i = 3; i <= numbSqrt; i = i+2)
{
if (numb % i == 0)
{
continue nextCandidate;
}
}
}while(false);
return numb;
}
public void remove() {}
}
void printPrimes()
{
System.out.print(2);
while(iter.hasNext())
{
try
{
Thread.sleep(500);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.print(", " + iter.next());
}
}
}
我想爲我的do-while循環使用帶標籤的「continue」語句。然而,我的直覺告訴我,我錯誤地使用它。
你知道9和15是不是素數,對吧? –
也許我錯過了它,但它看起來並不像你打印輸出 –
而不是繼續我會建議打破。或者返回false – KRUKUSA