为(内部for循环)设置计数器(j)

问题描述 投票:0回答:1

谁能告诉我为什么我们应该将内部 for 循环中的计数器 j 设置为 (i+1) 而不是 (i=0) (因为我认为将 j 设置为 i = 0 将获取数组中的所有元素)。 以及为什么我们使用break; 我是编程新手。 预先感谢。

在这里我检查重复项,如果我设置 (j = i+1),数组中的第一个元素将在比较中被跳过(索引为 0),不是吗?

arrays for-loop iteration nested-loops
1个回答
0
投票

因此,当检查数组中的重复项时(这就是我认为该算法的用途;如果我错了,请纠正我),您需要将每个元素与其他元素检查一次。让我们有一个 2D 数组

pairs
,其中包含您可以检查的所有可能的元素对。

对于具有 4 个元素的数组,二维数组将如下所示:

[(0,0),(0,1),(0,2),(0,3),
 (1,0),(1,1),(1,2),(1,3),
 (2,0),(2,1),(2,2),(2,3),
 (3,0),(3,1),(3,2),(3,3)]

我们可以像你说的那样遍历这个二维数组。

double[] array = new double[] {1,2,3,4}
for (int i=0;i<array.length;i++){
  for (int j=0;j<array.length;j++){
  
}

但是,这会检查 (1,0) 和 (0,1),这是多余的。我们所要做的就是检查上面的元素,包括从左上角到右下角的对角线。这使得我们必须将 j 设置为 i+1。

© www.soinside.com 2019 - 2024. All rights reserved.