【发布时间】:2015-08-25 08:57:43
【问题描述】:
第二个问题! (跟进我的第一个)我现在尝试列出第一个数组 (namesArray) 并将每个索引与用户定义的 hoursArray 小时数进行匹配。所以它会询问一周有多少人工作,然后询问他们的姓名,然后询问每个人的工作时间(同时将他们的姓名显示在侧面以提高质量)。
每当我尝试输入第一个人的第一个工作小时数时,我不断收到 IndexOutOfBounds 异常,我该如何解决这个问题以正确计算每个人的工作小时数?
import java.util.Scanner;
import java.util.Arrays;
class Tips_Calc
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("How many employees for the week?: ");
int numberOfEmps = scan.nextInt();
int numberOfHours = 0;
System.out.println("\nEnter names of workers up to the entered amount (" + numberOfEmps + "):");
String[] namesArray = new String[numberOfEmps];
for(int i = 0; i < numberOfEmps; i++)
{
namesArray[i] = scan.next();
}
System.out.println("\nEnter the amount of hours each person worked for the week: ");
float[] hoursArray = new float[numberOfHours];
for(int n = 0; n < namesArray.length; n++)
{
int counter = 0; // <------ do i even need this variable?
System.out.print(namesArray[n] + ": ");
hoursArray[counter] = scan.nextFloat(); // <------ the error is here!
System.out.println("\n");
counter++;
}
}
}
【问题讨论】:
-
您收到 IndexOutofBoundsException 还是 ArrayIndexOutOfBoundsException ?您应该在 for 循环之外声明计数器变量。
标签: java arrays exception user-defined