我对以下Java代码片段(循环)有疑问

时间:2019-04-16 20:33:09

标签: java arrays loops for-loop

能否请您解释问题B的解决方案? 我认为这些代码对第8行不起作用,因为当移至第6行时它已经超出了边界。该数组只有50个元素(索引从0到49),但是在while循环中,它检查t <= 100

考虑以下Java代码片段:

A-第一条System.out.println语句(第3行)执行后的输出是什么?

B-您如何描述第二个输出的数字列表 System.out.println语句(第8行)?

public static void main(String[] args) {
    int [] x = {0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
            1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,
            1,1,1,1,1, 1,1,1,1,1}; // x has 50 elements
    int i, t;

    for (i=2; i<8; i++) // line 1 
        if (x[i]!=0){ // line 2
            System.out.print(i+ " "); // line 3 – for question A 
            t=2*i; // line 4
            while (t<=100){ // line 5 
                x[t]=0; // line 6
                t+=i; // line 7
            }
        }
    System.out.println();// line 8 – for question B

    for (i=2; i<=50; i++) 
        if (x[i]!=0)
            System.out.println(i);
}

解决方案是: 2 3 4 5 6 7 8 9 10 11 12 ... 47 48 49 线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:Parray3.main(Ass3.java:20)处为50

0 个答案:

没有答案