运行程序时,出现以下异常:

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();
}

最佳答案

你应该搬家

Scanner klavye = new Scanner(System.in);
System.out.println("Sayı Girin:");
gSayi = klavye.nextInt();


到方法的开头,否则数组将始终只有一个元素,然后当然没有索引为1的元素。

09-28 09:06