开发者

Problem with exceptions and arrays

Can't really understand what's going wrong here?

It's just a simple exception with an array out of bounds.

public class Days
{
    public static void main (String args[])
    {
        String[] dayArray = new String [4];
        {
            dayArray [0] = "monday";
            dayArray [1] = "tuesday";
            dayArray [2] = "wednesday";
            dayArray [3] = "Th开发者_如何学JAVAursday";
            dayArray [4] = "Friday";

            try
            {
                System.out.println("The day is " + dayArray[5]);
            }
            catch(ArrayIndexOutOfBoundsException Q)
            {
                System.out.println(" invalid");
                Q.getStackTrace();
            }
            System.out.println("End Of Program");
        }
    }
}

Does anybody have any ideas as too why this won't run? I'm getting the error:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at Days.main(Days.java:14)


You should declare it as capable of 5 items, not 4, in its declaration.

new String [5];


Array are limited on creation. In your example, it has a size of 4 fields.
With a 0-indexed array it means you can access these fields, not any more:

dayArray [0] = "monday";
dayArray [1] = "tuesday";
dayArray [2] = "wednesday";
dayArray [3] = "Thursday";


When appropriate, let the compiler do the counting for you:

String[] dayArray = {
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
};

This way, you can add or remove elements without having to change the array length in another place. Less typing, too.


You array has a size of 4, and you are adding 5 elements.


You're defining five elements for a four element array. Java uses zero based indexes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜