首先介绍最常见的双层for循环,写这个的原因就是看清楚for循环的多样化,按照当时需求去写for循环,希望你们能理解,少走弯路,写的不好的,写评论,我会修改的
i++ :是先运行,在加1
++i :是先加1,在运行
1. for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println(j);
}
}
这个循环虽然是双层的,但是运行的机制都是各自管各自的,没有联系,输出的j依然是第二个循环
运行次数---(0,1,2,3,4),但是双层的循环会出5遍一样的运行次数
因为是第一层for循环的条件满足,进入下一层for循环,当本层的条件满足时就会一直循环,
当不满足的时候退出本层的循环,回到上一层的循环,第二层的循环相当于continue,会跳出当前循环,去下一个循环。
2. for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println(i);
}
}
这个循环与上面的运行机制一样,就是换了一个输出对象,但输出的次数就不一样了
次数是----(00000,11111,22222,.......)
这次就是第一层的循环条件满足进入第二层循环5次输出5个0,当第二层条件不满足的时候返回上一层的循环(其实也可以说是下一个循环,单看个人对循环的理解),第一层的循环条件还是为true,所以继续循环,就会出现一开始的值
3. for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.println(i);
}
}
这次的输出是----(1,2,2,3,3,3,4,4,4,4)
看到这里如果感觉思维不混乱就继续看,如果混乱的话,我的建议是---理解初始化,条件表达式,一元运算符。
这个双层的for循环,关注点在第二层的联系,因为我定义的是i<5,所以i++的自增只能运行到4,而第二层的初始化也是0,它的自增(j++)是根据第一层的循环进行增加,所以把0排除在外,并且每一次的循环都会增加一次直到第一层的条件不满足退出循环
4. for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.println(j);
}
}
这个和上一个运行机制一样,就是输出换了一下
这次的输出是----(0, 0,1, 0,1,2, 0,1,2,3),为什么会得到这样的数值呢?还是自己操作一下,自己就会明白的