我是 ABin-阿斌:写一生代码,创一世佳话。 如果小伙伴们觉得我的文章有点 feel ,那就点个赞再走哦。
一、什么是嵌套循环
- 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环或内层循环。
- 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
- 设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m * n 次。
二、代码演示
1、打印不同形状星星
class ForForTest {
public static void main(String[] args) {
/*
******
******
******
******
*/
for(int j = 1;j <= 4;j++ ){
for(int i = 1;i <= 6;i++){
System.out.print('*');
}
System.out.println();
}
/* i(行号) j(*的个数)
* 1 1
** 2 2
*** 3 3
**** 4 4
***** 5 5
*/
for(int i = 1;i <= 5;i++){//控制行数
for(int j = 1;j <= i;j++){//控制列数
System.out.print("*");
}
System.out.println();
}
/* i(行号) j(*的个数) 规律:i + j = 5 换句话说:j = 5 - i;
**** 1 4
*** 2 3
** 3 2
* 4 1
*/
for(int i = 1;i <= 4;i++){
for(int j = 1;j <= 5 - i;j++){
System.out.print("*");
}
System.out.println();
}
/**
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
*/
for (int i = 0; i < 7; i++) {
if (i < 4) {
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("* ");
}
System.out.println();
} else {
for (int k = 0; k < 13 - 2 * i; k++) {
System.out.print("* ");
}
System.out.println();
}
}
二、循环中的一些终止操作
1、普通循环
- continue: 用于循环体内,跳过本次循环,继续执行
- break: 用于循环体内,跳出整个循环,不在执行
2、增强for循环
- return: 用户循环体内,等同于 continue 的使用
3、多层for循环的原理
- 1、先走第一层,再走第二层,再走第三层,依次类推
- 2、走到第最后一层会把最后一层所有的循环走完,再反回来走第二层,再把第二层走完,又走第一层
- 3、然后:继续1、2步骤直到第一层结束
for (AccountEntity accountEntity : a) {
log.info("第一层循环:{}", accountEntity.getName());
for (BalanceEntity entity : b) {
log.info("第二层循环:{}", entity.getType());
for (MonitorlogEntity monitorlog : c) {
log.info("第三层循环:{}", monitorlog.getRunTime());
}
}
}
4、多层直接跳出
//该标识用于多层直接跳出使用
stop:
for (AccountEntity accountEntity : a) {
log.info("第一层循环:{}", accountEntity.getName());
for (BalanceEntity entity : b) {
log.info("第二层循环:{}", entity.getType());
for (MonitorlogEntity monitorlog : c) {
// if (monitorlog.getRunTime() == 4L) {
//多层直接跳出:注意:break仅仅是停止当前层,但是后面加个标识指定就可以跳出任意层次
// break stop;
// }
log.info("第三层循环:{}", monitorlog.getRunTime());
}
}
}