循环中的嵌套数组如何工作

时间:2018-05-26 07:07:36

标签: java arrays loops

我试图在循环中理解这个数组的工作

TypeError

频率是在开始时初始化为

的数组
for (int answer=0; answer<responses.length; answer++)
{
++frequency[responses[answer]]
}

我们还将响应作为具有值int [] frequency = new int [6];

的数组

我不明白这个int[] responses= {1,2,3,4,4,4,4,4}是如何工作的,它在我看来是嵌套数组,但它是如何工作的?

2 个答案:

答案 0 :(得分:1)

没有嵌套数组。您只是嵌套两个数组访问语法。

要解释此代码,我们首先需要知道answer变量将如何变化。从for循环标题中,我们可以看到它从0开始,一直到responses.length - 1,即8.现在我们可以评估表达式frequency[responses[answer]]

// in each iteration of the loop
frequency[responses[0]]
frequency[responses[1]]
frequency[responses[2]]
frequency[responses[3]]
frequency[responses[4]]
frequency[responses[5]]
frequency[responses[6]]
frequency[responses[7]]

现在我们可以评估responses[x]部分。我们只需要在responses数组中找到相应的响应。 responses[0]是第一项,1

frequency[1]
frequency[2]
frequency[3]
frequency[4]
frequency[4]
frequency[4]
frequency[4]
frequency[4]

该语句还包括++运算符,它将frequency的特定索引递增1.因此,所有上述索引将一个接一个地递增1,使得{{1}数组看起来像这样:

frequency

在更高的抽象级别上,此代码计算特定响应在[0, 1, 1, 1, 5, 0] 数组中出现的次数。例如,responses出现了5次。

答案 1 :(得分:0)

探险

++frequency[responses[answer]]

与编写完全相同

int fi = responses[answer];
++frequency[fi];

frequency有六个元素,responses中的所有条目都是六元素数组的有效索引。 answers有八个元素,因此只要answer介于0到7之间,整个过程就会有效。