我无法跟踪某些代码以获取输出:
int[] a = new int[5];
for (int i = 0; i < a.length; i++)
{
a[i] = i*3-1;
}
for (int i = a.length-1; i >= 0; i--)
{
System.out.print(a[i] + " " );
}
输出:
11 8 5 2 -1
我不明白为什么第二个变量&#39; i&#39;从第一个For循环中被放回到公式中。有人可以帮我连接这两个循环吗?数组是在第一个循环中定义的,为什么它会影响第二个循环呢?我不理解这种关系,也许我只是错过了它。
答案 0 :(得分:0)
for (int i = 0; i < a.length; i++) {
a[i] = i*3-1;
}
在第一个循环(上图)中,i
是循环的增量,我假设您理解。知道这一点,我们知道整个循环中i
的值将为0, 1, 2, 3, and 4
。
对于陈述a[i] = i * 3 - 1
,它有两个目的。
a
数组中的值。i
的递增值计算新的整数。例如,在第一次迭代中,i
将为0
。因此,循环内部的代码会将数组位置0
的值设置为0 * 3 - 1
或-1
。这将继续循环的剩余部分,解释第二个循环在反向打印时打印的值。
答案 1 :(得分:0)
我不明白为什么第二个变量&#39; i&#39;正在从第一个For循环中回到公式中。
i
只是变量的名称。变量i
在计算值时并不重要,它仅用作循环计数器。您可以在任何j
循环中使用for
或任何其他名称,但仍会获得相同的输出。
有人可以帮我连接这两个循环吗?该数组定义于 第一个循环,为什么它影响第二个?
在第一个循环中使用值填充数组。但请注意,数组最初是在程序开头声明的。
int[] a = new int[5];
这意味着阵列的范围不仅限于第一个for
循环。它可以在其范围内的任何地方访问。
因此,在第一个for
循环中,我们使用值填充数组。在第二个for
循环中,我们正在显示它。
答案 2 :(得分:0)