我目前正在在线学习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]];
}
}
Run Code Online (Sandbox Code Playgroud)
我正在查看a[3]此代码的值,并且在调试代码时,我的IDE显示a[a[i]]正在评估到9,这让我有些困惑。
我以为先a[3]等于1后a[1]等于8,但是事实并非如此。谁能提供清晰的信息,因为JetBrains学院的课程没有提到这一点。
Era*_*ran 10
请注意第一个条件-- 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。
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |