错误代码线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:1

时间:2018-12-14 19:19:39

标签: java expo

public class Reviewmaker {
    public static void main (String args[]) {
        System.out.println("Review Maker");     
        System.out.println("----------------------------------------------------");
        System.out.println("By: Sami Besellam");

        String Question, Answer;
        System.out.println("How many questions do you Want?");
        int f = Expo.enterInt();
        int e = 1;
        String[] Q = new String [e]; 
        String[] A = new String [e]; 

        for (int k = 1; k <= f; k++) {
            System.out.println("Enter question  " +k);
            Q[k] = Expo.enterString(); 

            System.out.println("Enter Answer " +k);
            A[k] = Expo.enterString();
        }

        for (int k = 1; k <= f; k++) {
            System.out.println("Question #" + k);
            System.out.print(Q[k]);
            System.out.println("Question #" +k);
            System.out.print(A[k]);
        }
    }
}


// Q = E + k

当我输入第一个问题时,它会给我此错误消息 “线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:1” 在Reviewmaker.main(Reviewmaker.java:18)

通过我使用Jgrasp的方式 如果有人熟悉Expo.io,将不胜感激

3 个答案:

答案 0 :(得分:1)

String[] Q = new String [e];更改为String[] Q = new String [k];与您的A数组相同。您的变量e是不必要的。

答案 1 :(得分:0)

我想您需要的是

String[] Q = new String [f]; 
String[] A = new String [f]; 

还将for循环运行到f小于1直到f

for (int k = 1; k < f; k++)

答案 2 :(得分:0)

您要在变量 f 中存储问题的数量,但是您要定义问题的大小 Q ,并使用变量< strong> e 。

现在,如果我输入的问题数为5,则意味着f = 5。但是您的数组大小为1,因此当for循环运行时,它将从0到4运行,并且当访问数组的第二个元素时,由于大小而将给出异常。

还要从0索引而不是1到