【发布时间】:2021-03-11 04:26:34
【问题描述】:
我要做的是在给定数组(从 0 到 n-1)时,将数组值与索引减去 3 的倍数相加,从末尾开始。 例如,当给定 7 个数组时,我想对 a[0] a[2] a[3] a[5] a[6] 求和。
下面是我编写的代码的错误部分。
int j = 0;
for(int i=0; i<n; i++){
j = i*3;
if(i!=n-j)
r += array[i];
}
我的代码无法读取条件,只能对所有数组值求和。 我不知道为什么。有人可以帮我吗?
【问题讨论】:
-
您是否尝试过使用调试器单步执行代码,以检查程序在每个时间点的状态以及您对其行为的假设?
-
代码可以“读取条件”就好了。问题是条件永远不会为假。
-
欢迎来到 SO。请使用tour,阅读How to Ask,并编辑您的问题以包含Minimal, Complete, and Verifiable example。另外,请检查this。
-
有人建议使用调试器,但更简单的替代方法是在
if之前插入以下行并观察发生了什么:System.out.println("i: " + i + " j: " + j + " n: " + n + " n-j: " + (n-j) + " r: " + r);- 这些值是您所期望的成为?
标签: java arrays if-statement conditional-statements