为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套数组引用

嵌套数组引用

FFIVE 2023-08-04 16:42:02
我目前正在在线学习 Java,对以下代码以及数组中的元素之一的计算结果感到困惑:int[] a = new int[]{9, 8, 3, 1, 5, 4};for (int i = 0; i < a.length; i++) {    if (a[i] % 2 == 0) {        a[i] += 1;    } else if (a[i] < a.length) {        a[i] += a[a[i]];    }}我正在查看a[3]计算结果的数字,当我调试代码时,我的 IDE 显示a[a[i]]计算结果为9,这就是我有点困惑的地方。我以为a[3]先等于1然后a[1]等于8,但事实似乎并非如此。任何人都可以澄清一下,因为 JetBrains Academy 课程没有提及这一点。
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

注意第一个条件 -if (a[i] % 2 == 0) {a[i] += 1;}这会导致偶数值增加。因此a[1]8增加到9

现在,当i==3,a[a[i]]被评估为a[1]等于 时9。然后将其添加到 的原始值a[3](注意运算符是+=,而不是=),因此a[3]变为1 + 9,即10


查看完整回答
反对 回复 2023-08-04
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

int[] a = new int[] {9, 8, 3, 1, 5, 4};


for (int i = 0; i < a.length; i++){

    if (a[i] % 2 == 0)

        a[i] += 1;

    else if(a[i] < a.length)

        a[i] += a[a[i]];

}

|i | a[i] old | a[i] % 2 | a[i] < a.length | a[a[i]] | a[i] new |

|--|----------|----------|-----------------|---------|----------|

|0 |  9       |    -     |   -             |  NaN    |    9     |

|1 |  8       |    +     |   -             |  NaN    |    9     |

|2 |  3       |    -     |   +             |  1      |    4     |

|3 |  1       |    -     |   +             |  9      |    10    |

|4 |  5       |    -     |   +             |  4      |    9     |

|5 |  4       |    +     |   -             |  9      |    5     |

// a = {9, 9, 4, 10, 9, 5};

我以为这a[3]等于1

这是正确的,在步骤3,a[3] = 1


然后就a[1]等于8

这是不正确的,因为在步骤中1它被增加到9


查看完整回答
反对 回复 2023-08-04
?
繁星coding

TA贡献1797条经验 获得超4个赞

没关系。查看您正在做什么的最佳方法是debuggin(在本例中绘制)您的代码:


int[] a = new int[] {9, 8, 3, 1, 5, 4};


    for (int i = 0; i < a.length; i++){

        if (a[i] % 2 == 0){

            System.out.printf(a[i]);

            a[i] += 1;

            System.out.printf(a[i]);

        }else if(a[i] < a.length){

            System.out.printf(a[i]);

            a[i] += a[a[i]];

            System.out.printf(a[i]);

}

你会看得更清楚。有时,我们自己面对墙壁会更好,因为最好的做法之一就是了解你。祝你好运!。


查看完整回答
反对 回复 2023-08-04
  • 3 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信