假设p是一个二维数组,其元素类型为int。以下哪个陈述最能说明以下代码的效果?
int i = 0;
while ( i < p[ 0 ].length )
{
p[ 0 ][ i ] = 0;
i++;
}
有人可以为我翻译成简单的英语吗?
我只明白循环会在i < p[0].length
时继续运行,但p[0]
是什么,p[0][i]
是什么?
答案 0 :(得分:4)
"i" equals zero
"p" is an array of arrays
while i is smaller than the "first" array's size in p
give 0 as value to i'th element of first array in p
increase i by 1
答案 1 :(得分:1)
变量p
可能是int[][]
- 一组int的数组。
p[0]
是p
的第一个元素,类型为int[]
。 []
运算符索引到数组中。 a[n]
从数组a
中获取索引n处的元素。请注意,它使用基于0的索引,因此第一个元素的索引为0(而不是您预期的1)。
循环将p[0]
中的所有元素设置为值0
。
请注意,使用Arrays.fill
也可以更简洁地完成此操作。以下代码与您发布的循环具有相同的效果:
Arrays.fill(p[0], 0);
答案 2 :(得分:0)
这是一个循环,i
增加p
数组的第一个数组的长度,将i
元素设置为0
。
在java中,p[0][i]
与p[i]
的第一个数组的p
相同。
据推测,p
被声明为int[][] p
答案 3 :(得分:0)
p [0] .length指的是第二个指定尺寸的大小,如果有一个具有n个维度的数组,则说明int a [] [] [] [] [] [] [] [... n次那么a.length指的是第一维,a [0] .length指的是第二维的长度等。
p [0] [i]显然是指第一行,其列索引由i的当前值指定。