您能帮我解释一下这部分代码吗?

时间:2020-04-25 06:32:48

标签: java

关于使用标签中断,Java编程。该程序在数组中搜索数字1。

   public static void main(String[] args) {
        int[][] arrayOfInts =
        {{  32,     87,     3,      589},
        {   12,     1076,   2000,   8},
        {   622,    127,    77,     955}};

        int searchfor = 1;

        int i = 0;
        int j = 0;
        boolean foundIt = false;

        search:
        for (; i < arrayOfInts.length; i++) {
            for (j = 0; j < arrayOfInts[i].length; j++){
                if (arrayOfInts [i][j] == searchfor) {
                    foundIt = true;
                    break search;
                }
            }
        }
        if (foundIt) {
            System.out.println("Found "+ searchfor + " at " + i +", "+ j);
        } else {
            System.out.println(searchfor + " not in the array");
        }
    }
}

我不理解的代码部分是

search:
        for (; i < arrayOfInts.length; i++) {
            for (j = 0; j < arrayOfInts[i].length; j++){
                if (arrayOfInts [i][j] == searchfor) {
                    foundIt = true;
                    break search;
                }
            }
        }

以及为什么会有“;”在“ i”前面?

3 个答案:

答案 0 :(得分:2)

这只是编写循环的另一种方式。

由于i在for循环之前在外部初始化,因此在for循环中不需要初始化。

代码1:

for(int i=0;i<n;i++){}

代码2:

int i=0;
for(;i<n;i++){}

代码1和代码2含义相同。

答案 1 :(得分:2)

For循环到Uncaught TypeError: Failed to set an indexed property on 'CSSStyleDeclaration': Index property setter is not supported. 在您的第一个for循环中,因此没有要初始化的内容;

(<intialize counter>;<check loop condition>;<modify counter>)

答案 2 :(得分:0)

这是for循环的格式。 initializationtermindationincrement部分可以为空白。

for (initialization; termination; increment) {
    statement(s)
}

在您的代码示例中,i在for循环之前被初始化。

这将类似于此:

  public static void main(String[] args) {
    int[][] arrayOfInts = {{1,2}, {3, 4}};
    int searchfor = 8;
    boolean foundIt = false;
    for (int i = 0; i < arrayOfInts.length; i++) {
      for (int j = 0; j < arrayOfInts[i].length; j++){
        if (arrayOfInts [i][j] == searchfor) {
          foundIt = true;
          break;
        }
      }
    }
  }

请参阅:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html