随机数组错误

时间:2014-12-15 01:11:29

标签: java

为什么程序显示java.lang.ArrayIndexOutOfBoundsException:11? 该程序需要打印11个数字。 9个数字应该是随机的。 它打印11个数字,但有错误。

public class Main {
    public static void main(String[] args) {
        Random random  = new Random();
        int[] Cnum = new int[11];
        Cnum[0]=0;
        Cnum[1]=9;
        System.out.print(Cnum[0]);
        System.out.print(Cnum[1]);

        for(int a = 2; 2 < 10; a++){
            Cnum[a]=random.nextInt(9);
            System.out.print(Cnum[a]);
        }
    }
}

输出应该是(x是随机的):

09xxxxxxxxx 

但它的输出是:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
    at CellphoneNumberGenerator.Main.main(Main.java:17)
    09505423220

2 个答案:

答案 0 :(得分:6)

for(int a=2;2<10;a++)

这基本上是一个while(True)(无限)循环,因为2总是小于10.也许你的意思是:

for(int a= 2; a<10; a++)

答案 1 :(得分:4)

在你的for循环中,条件是错误的。

您有2 < 10而不是a < 10