【发布时间】:2013-02-27 00:23:55
【问题描述】:
我今天早些时候曾问过有关此计划的问题,并且能够完成我需要完成的大部分工作,但似乎人们不再关注它 Here's 链接。
这是我现在拥有的:
import java.util.*;
import java.text.*;
public class Lab4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String input;
int students;
int correctAnswers=0;
char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
char [] userAnswers = new char[answerKey.length];
DecimalFormat df = new DecimalFormat("#0.0");
System.out.print("how many students are in your class?");
input = s.nextLine();
students=Integer.parseInt(input);
String [] name = new String[students];
int j=1;
while(students>=j)
{
System.out.print("Enter name of student" + j + ": ");
name[j] = s.nextLine();
System.out.print("Enter quiz score answers");
userAnswers[answerKey.length] = s.next().charAt(0);
for (int i = 0; i < userAnswers.length; ++i)
{
if(userAnswers[i]==answerKey[i]);
correctAnswers++;
}
System.out.print((df.format(correctAnswers/answerKey.length)) + "%");
j++;
}
}
}
但我在输入用户的答案后不断收到此错误:
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常: 12 在 Lab4.main(Lab4.java:29)
我不确定这意味着什么或如何解决它。
【问题讨论】:
-
这意味着您正在尝试读取数组末尾。
-
表示你试图访问第 29 行索引 12 处的数组,但你的数组小于 13 个元素。
-
如果对新用户投反对票的人能够解释原因或至少指出FAQ
标签: java arrays for-loop while-loop user-input