了解嵌套for循环的工作原理

时间:2017-04-06 10:16:40

标签: java sorting for-loop

我无法理解嵌套for循环是如何工作的。只是做升序程序,请一步一步解释我的工作原理

class Ascending {

  public static void main(String args[]) {

    int temp;
    int a[] = {20, 10, 80, 70};
    for (int i = 0; i < 4; i++) {
      System.out.println(a[i]);
    }
    for (int i = 0; i < 4; i++) {
      for (int j = i + 1; j < 4; j++) {
        if (a[i] > a[j]) {
          temp = a[i];
          a[i] = a[j];
          a[j] = temp;
        }
      }
    }
    System.out.println("\n after:");
    for (int i = 0; i < 4; i++) {
      System.out.println(a[i]);
    }
  }
}

输出:

20
10
80
70

后:

10
20
70
80

1 个答案:

答案 0 :(得分:1)

nester循环是如何工作的。

这很简单,for循环定义如下:

for(init;condition;increment)

  • init:在开头执行一次
  • 条件:每次执行前检查(像一会儿)
  • increment:将在循环中的代码之后完成

这里,有一个循环,

for (int i = 0; i < 4; i++) {
    // code 
}

这与

相同
int i = 0;
while(i < 4){
    // code
    i++;
}

如果你有嵌套循环,想法是一样的,内部循环将需要执行尽可能多的时间条件为真,然后外部循环可以递增并再次检查他的条件。

for (int i = 0; i < 4; i++) { //loop A
    for (int j = i + 1; j < 4; j++) { //loop B
         // code
    }
}

循环A将以i = 0开头,然后循环B将以j = i = 0开头。 代码将执行直到j => 4退出循环B.在那里,循环A将执行增量部分i = 1

条件仍然是正确的,所以循环将执行他的代码,循环B将以j = i = 1开头。

再次......直到循环A的条件为假。