我无法理解嵌套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
答案 0 :(得分:1)
nester循环是如何工作的。
这很简单,for循环定义如下:
for(init;condition;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的条件为假。