多重循环

多重循环

1. 死循环

死循环: 循环语句无法正常停止的情况,就被称为死循环。一般都是缺失了循环的出口或者循环条件存在问题。

按理说,死循环并不是一件好事,但是 “功法没有正邪之分,有正邪之分的是使用的人。” 如果被你使用正确,它可以解决很多问题。

适用的场景: 当你不确定,或是确定循环条件及出口时较为困难/麻烦时,可以采用死循环。

while (true) {
    
}
do {
    
} while (true);
for (;;) {
    
}

但无论是死循环也好,还是正常循环,都应该保证有相应出口。我们可以通过循环中的跳转语句,来实现循环流程的控制。

  • break
  • continue

break

break:中断

break 在 switch 选择结构中出现过,它当时的意思是结束某个分支。

在循环中,它表示结束当前所在循环,一般还要配合选择结构使用。

continue

continue:继续

只能在循环中使用,它表示结束当前所在循环的本次循环(本次循环中,continue后的所有内容不再执行),跳转到下一次循环开始。

2. 多重循环概述

需求:实现下方图形的打印,通过一颗*一颗*的方式来打印。

*****
*****
*****
*****
*****
*
***
*****
*******
*********
    *
   ***
  *****
 *******
*********
  *****
 *****
*****

单层循环无法实现稍微复杂些的需求,所以我们需要使用多重循环(嵌套循环),它是一种类似于嵌套 if 的存在。

while (外层循环条件) {
    while (内层循环条件) {
        
    }
}
do {
    for (内层循环条件) {
        
    }
    for (内层循环条件) {
        
    }
} while (外层循环条件);

不同的循环结构之间可以相互嵌套,嵌套多少层、多少个都可以。

但是一般嵌套的层数不要超过3层,因为层数过多,循环结构过于复杂,因小失大。

一般的嵌套都是两层居多,所以多重循环又被称为二重循环/双重循环。

产生循环嵌套之后,会分为外层循环和内层循环,内层循环此时其实就是外层循环的循环操作

外层循环执行一次,内层循环执行一遍!

3. 案例实现

3.1 打印矩形图形

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        System.out.print("*");
    }
    System.out.println();
}

3.2 打印三角形

打印直角三角形:

*
***
*****
*******
*********
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 2 * i - 1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

打印等腰三角形:

    *
   ***
  *****
 *******
*********

3.3 打印平行四边形

for (int i = 1; i <= 3; i++) {
    for (int k = 1; k <= 3 - i; k++) {
        System.out.print(" ");
    }
    for (int j = 1; j <= 5; j++) {
        System.out.print("*");
    }
    System.out.println();
}

3.4 打印九九乘法表

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6  3*3=9
....
1*9=9 2*9=18 3*9=27 ....
for (int i  1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(j + "*" + i + "=" + (j * i) + "\t");
    }
    System.out.println();
}

4. 作业

现在默写:类名的规范、变量名的规范、常量名的规范、注释的规范、缩进的规范。

作业见文档。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值