的篩當我運行我的程序,我得到以下異常:ArrayIndexOutOfBoundsException異常而實施埃拉托色尼
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at eraKevgiri.main(eraKevgiri.java:29)
這有什麼代碼問題?
public static void main(String[] args) {
int gSayi = 0;
int kKok = (int) Math.sqrt(gSayi);
boolean[] liste = new boolean[gSayi + 1];
Scanner klavye = new Scanner(System.in);
System.out.println("Sayı Girin:");
gSayi = klavye.nextInt();
for(int i=2; i<=kKok; i++){
System.out.println("" +i);
for(int j=i*i; j<=gSayi; j+=i){
liste[j] = true;
}
}
for(int k=kKok; k<=gSayi; k++){
if(!liste[k]){ //-------> problem in here
System.out.println("" + k);
}
}
klavye.close();
}
你的數組沒有你試圖訪問的索引。嘗試在你的代碼中添加斷點,然後在調試中查看你的數組的值,以驗證你所期望的數組中的值。 – blad
只是一個問題......完全不在話題中,但是......第一個「爲」聲明做什麼?因爲它似乎是你騎自行車我= 2和KKOK已被設置爲0的sqrt爲0 ... – Noya
@諾亞是的它的確如此。你需要他們的「eratosthenes篩」算法。否則,您無法訪問(用戶輸入的)所有素數。 – android93