8.java循环结构

循环:
1.概念: 将重复的操作反复在一个地方执行。
2.作用: 简化代码,减少代码的冗余,提高可读性。
3.分类:
while、do…while、for

while 当型循环

语法:

		while语法:
			while(循环条件){
					语句体;
			}

案例: 求1~100之间 偶数出现的次数

		//定义变量用来统计次数
		int count = 0;
		
		int i = 1;
		while(i <= 100) {
		//当i为偶数数进入循环
			if(i%2 == 0) {
		//if语句进来一次就代表出现了一次偶数,我们把这个次数进行累加
				count = count + 1;
			}
			i++;
		}
		//输出
		System.out.println(count);

do…while 直到型循环

语法:

		do {
			语句体;
		}while(条件);

while跟do-while的区别:

  • while循环先判断再执行
  • do-while是先执行再判断,就算条件不成立也会执行一次

在这里插入图片描述

for循环

for是对while循环的升级,把循环的三要素放在一起,便于管理,并且提高了代码的可读性。
语法:

		for(第一要素;第二要素;第三要素) {
			需要重复执行的代码;
		}

案例:
1.使用for循环打印0-100之间所有的数字。
2.用for循环求0-100之间所有数字的和。
3.使用for循环求5的阶乘 5!=54321。

//		1.使用for循环打印0-100之间所有的数字。
		for(int i =0;i<=100;i++) {
			System.out.println(i);
		}
		
//      2.使用for循环求0-100之间所有数字的和
//		定义变量存储累加和
		int sum = 0;
//		累加求和
		for(int i = 0;i<=100;i++) {
			sum+=i;
			i++;
		}
		System.out.println(sum);
		
//		思考题:使用for循环求5的阶乘  5!=5*4*3*2*1
		int temp =1;
		for (int i = 5;i>0;i--) {
			temp *=i;
		}
		System.out.println(temp);

案例4: 求 1! + 4! + 7! + 10! + 13! + 16!

//	    定义变量sum,用来存储所有数字的阶乘的和
		long sum = 0;
		//外层循环获取1 4 7 ....16
		for(int i =1;i<=16;i=i+3) {
			long result =1;
			for(int j =i;j>=1;j--) {
//			定义变量result,来存储阶乘的值,因为16!超过了int的取值范围,所以这里用long
				result = result*j;
			}
			sum =sum+result;
		}
		System.out.println("1! + 4! + 7! + 10! + 13! + 16!="+sum);

前面我们讲过变量名不能重复定义,但我们发现上面的案例中我们每一个for循环中都定义了一个变量i,由此可见变量只在for循环的内部有效,在循环的外部无效。不同的for循环里面的变量名可以重复。但是当同一段代码用了多个for循环,这里我们为了方便区分变量和提高代码可读性,建议在不同的for循环中尽量避免使用同一个变量名。

流程控制语句

流程控制语句 用来控制代码的执行过程。

break

  1. break用于switch语句中,表示终止switch语句。
  2. break用于循环语句中,表示循环停止,跳出循环,不再进行下面的循环(多与死循环搭配使用)。
  3. break用于其他位置,毫无意义。

而switch中的break是switch语法的一部分,不可缺少。相比循环中的break,两者是两个独立的语法。
案例: 输出1-10中的前4个数

//      break语句
		for(int i = 1;i<=10;i++) {
			
			if(i==5) {
				break;
			}
			System.out.println(i);
		}

continue

在一个循环里面遇到continue,跳过本次循环,继续下一次循环。
与break不同,continue只能在循环中使用。
案例: 输出1-10中5以外的9个数

//		continue
		for(int i=1;i<=10;i++) {
			if(i==5) {
			continue;
			}
			System.out.println(i);
		}

循环嵌套

循环的嵌套:
在循环里面再添加循环。
案例1:
使用循环打印一个9*9的正方形,要求每一个输出语句只输出一个星。
在这里插入图片描述

		
//      定义一个变量i,来代表行数
		for(int i =1;i<=9;i++) {
//			定义一个变量j,来代表列数
//			循环嵌套中不能定义重复的变量
			for(int j=1;j<=9;j++) {
				System.out.print("*  ");
			}
//			换行
			System.out.println();
		}

案例2: 用*打印等腰直角三角形 。
在这里插入图片描述

//      变量i代表行数,变量j代表列数。
//		观察图形,发现每一行*的最大个数都等于行数i,即每一行的列数都等于改行的行数(j<=i)。
//		外层循环控制行数
		for(int i = 1;i<=9;i++) {
//			内层循环控制每行的列数
			for(int j=1;j<=i;j++) {
				System.out.print("*   ");
			}
			System.out.println();
		}

案例3: 打印九九乘法表
在这里插入图片描述

//		可以把九九乘法表看做是一个九成九的等腰直角三角形
		//外层循环控制行数,内层循环控制列数。
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+(i*j)+"  ");
			}
			//换行
			System.out.println();
		}

总结

  1. 在企业级项目开发中,for循环是使用最多的循环,while循环其次,而do…while循环几乎不会用到。
  2. 如果不知道循环的次数,优先选择while循环。
    案例:
    有一张1mm厚的白纸,折叠多少次超过100mm(这里没有告诉我们循环的具体次数,因此优先选择while)
		//有一张1mm厚的白纸,折叠多少次超过100mm
		//定义变量land,用来存储白纸的厚度
		int land = 1;
		//定义变量count,用来存储折叠次数
		int count =0;
//      方法一:
		while(land<=100) {			
			land = land*2;
			count+=1;
		}
		System.out.println(count);
//		方法二:
		while(true) {
			land *= 2;
			count +=1;
			if (land>100) {
				break;
			}
		}
		System.out.println(count);
  1. 如果知道循环的次数,优选选择for循环。

案例:
有1万元,存入银行,年利率是3%,求10年后的本息和。(我们知道具体的循环次数为10,因此优先选择for)

        //for循环
		double money = 10000;
		for (int i=1;i<=10;i++) {
			money = money+0.03*money;
			System.out.println("第"+i+"年本息和为:"+money);
		}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值