我正在處理PrimeSieve的ArrayList實現,並且我已經編寫了所有代碼,但似乎無法運行,所以我不確定是因爲循環是壞的還是因爲我設置了錯誤的掃描儀。掃描儀不工作 - Prime篩子。代碼已完成
這是代碼。
import java.util.Scanner;
import java.util.ArrayList;
public class PrimeSieve {
public static void main(String[] args)
{
int inputNum;
Scanner SL = new Scanner(System.in);
System.out.print("Pick a number to count up from:");
inputNum = SL.nextInt();
ArrayList<Boolean> BL = findPrime(inputNum);
System.out.println("The prime numbers found:");
for(int i = 0; i < inputNum; i++)
{
if(BL.get(i) == true)
{
System.out.println(i + ", ");
}
}
}
public static ArrayList<Boolean> findPrime(int maxNum)
{
ArrayList<Boolean> BL = new ArrayList<Boolean>();
//Filling in the list.
for(int i = 0; i < maxNum; i++)
{
BL.add(true);
}
for(int i = 0; i * i <(maxNum); i++)
{
if(BL.get(i) == true)
{
for(int k = i*2; k < maxNum; k = k + i)
{
BL.set(i, false);
}
}
}
return BL;
}
}
一旦我輸入任何數字,然後按回車,什麼都不起作用。我的假設是,該計劃不斷在某處循環,並且必須被打破。
有什麼問題是什麼呢?編譯錯誤?例外?什麼都沒有發生?錯誤的結果...? – amit
你輸入了什麼(**和**回車)?我問這個,因爲你沒有提供任何示例輸入和輸出。 – skiwi
將一些System.out.println()調用添加到循環中以確保它們已執行。或者使用調試器。 –