【发布时间】:2021-04-03 14:47:53
【问题描述】:
我正在使用 java,并且在为我需要的任务正确制定循环时遇到了一些麻烦。我想将元素添加到 3 元素数组中,以便满足这些条件:
array_new[0] = f(array_old[0], array_old[1])
array_new[1] = f(array_old[0], array_old[2])
array_new[2] = f(array_old[1], array_old[2])
这里array_new 是我希望使用循环填充的数组,array_old 是一个现有数组,它为f 提供参数,这是一个先前定义的方法。请注意这里f(a,b)=f(b,a),并且我不想要重复的参数或重复的输出:所以没有f(a,a),也没有f(b,a),因为在循环中已经到达f(a,b)。所有这些单独的部分都已定义并正常工作,我的问题只是让循环的逻辑正确。这是我最初尝试的:
for (int i=0; i<array_old.length; i++) {
for (int j=0; j<array_old.length; j++) {
for (int k=0; k<array_old.length; k++) {
if (i<j) {
array_new[k]=f(array_old[i], array_old[j]);
}
}
}
}
但是我意识到这个更新 array_new[0] 违背了我的意愿:首先它根据需要设置array_new[0] = f(array_old[0], array_old[1]),然后它设置array_new[0] = f(array_old[1], array_old[2])
我尝试过以几种不同的方式处理索引,但似乎总是至少有一个重复或不正确的值。如有任何帮助,我将不胜感激
【问题讨论】:
-
数组总是长度为 3 吗?如果它们不是可变的,我不会使用循环。
-
@soothsooth 出于我的目的,它们将是可变的,我只是使用长度 3 来了解逻辑并测试我的循环。
标签: java arrays loops for-loop logic