多重循环

多重循环

1. 死循环

死循环:循环语句无法正常停止的情况,被称为死循环。一般都是缺失了循环的出口或者循环条件存在问题。按理说,死循环并不是一件好事,但是“功法没有正邪之分,有正邪之分的是使用的人。” 如果被你使用正确,它可以解决很多问题。

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

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

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

  • break
  • continue

break

break:中断

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

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

continue

continue: 继续

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

2. 多重循环概述

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

for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 5; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
*****
*****
*****
*****
*****
for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 2 * i - 1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
*
***
*****
*******
*********
for (int i = 1; i <= 5; i++) {
			// 打印空格
			for (int k = 1; k <= 5 - i; k++) {
				System.out.print(" ");
			}
			// 打印 * 
			for (int j = 1; j <= 2 * i -1; j++) {
				System.out.print("*");
			}
			// 换行
			System.out.println();
		}
	 *
    ***
   *****
  *******
 *********
   *****
  *****
 *****

单层循环无法实现稍微复杂些的需求,所以我们需要使用多重循环(嵌套循环),它是一种类似于嵌套 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 <= 5; i++) {
			// 打印空格
			for (int k = 1; k <= 5 - i; k++) {
				System.out.print(" ");
			}
			// 打印 * 
			for (int j = 1; j <= 2 * i -1; j++) {
				System.out.print("*");
			}
			// 换行
			System.out.println();
		}

3.4 打印平行四边形

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.5 打印九九乘法表

for (int i = 1; i <= 9; i++) {
			for (int k = 1; k <= i; k++) {
				System.out.print(k + "*" + i + "=" + (k * i) + "\t");
			}
			System.out.println();
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值