如何解决线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:3

时间:2014-02-24 03:49:27

标签: java exception

我是新手,我不知道我的代码在这里有什么问题。我将在这里写下问题和我的代码。如果有人可以帮助我。 所以问题是: 您必须告诉该人在给定时间内可以执行的家务总数。 第一个输入是用户获得的总时间。 第二个输入是用户想要执行的杂项总数。 最终输入是完成每项任务所需的时间。

这里是我的代码:

public static void main(String [] args){         扫描仪扫描=新扫描仪(System.in);

    int totalmins, chores=0, eachtime, totalchores, counter=0;


    // getting the input
    System.out.println("Enter the total time:");
    totalmins=scan.nextInt();
    while (totalmins>100000) {
        System.out.println("Enter again. Less than 100000:");
        totalmins=scan.nextInt();
    }

    System.out.println("Enter the total chores:");
    chores=scan.nextInt();

    int [] time = new int[chores];

    for (int i=1; i<chores; i++) {
        System.out.println("Enter time:");
        eachtime=scan.nextInt();
        time[i]=eachtime;
    }
   // arranging in ascending order
    for (int i=0;i<time.length; i++) {
        if (time[i] > time[i+1]) {
            int temp = time[i];
            time[i]=time[i+1];
            time[i+1]=temp;
        }

        }
        for (int i=0;i<time.length; i++) {
            totalchores=time[i] + time[i+1];
            counter++;

            if (totalchores>totalmins) {
                counter=counter-1;
                System.out.println(counter);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我认为您缺少的一点是,在长度为3的数组中,条目编号为0,1和2.如果您尝试使用条目号3,您将获得该异常。但这正是你正在做的事情 - 你的所有循环一直持续到i = 2(包括那种情况),但是你继续尝试使用数组的i + 1条目