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,将不胜感激
答案 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到