循环-for-while-do.while

模块内容简述
1.for- 格式 -执行流程 ----(补充 for循环嵌套)- 注意 -案例(输键盘录入两个正整数m和n,求其最大公约数和最小公倍数,求其最大公约数和最小公倍数,九九乘法表
2while格式-执行流程-注意 -案例(叠纸到达珠穆朗玛峰)
3.do…while格式 -执行流程- 注意
三者之间的区别

前言

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要通过修改循环变量使得循环判断条件为false,从而结束循环,否则循环将一直执行下去,形成死循环。

初始化语句: 一条或者多条语句,这些语句完成一些初始化操作。

  • 判断条件语句: 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
  • 循环体语句: 这个部分是循环体语句,也就是我们要多次做的事情。
  • 控制条件语句: 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。 通过用于控制循环条件中的变量,使得循环在合适的时候结束。

分类:

  • for
  • whie
  • do…while

一. for循环语句

for循环语句的格式:

for(初始化语句①;循环条件语句②;循环控制语句④){
	循环体语句③;
}
//执行顺序是 ① ②③④ ②③④ ②③④ ...

执行流程

- 第一步:执行初始化语句①,完成循环变量的初始化;
- 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
    如果是true,执行第三步;
    如果是false,循环语句中止,循环不再执行。
- 第三步:执行循环体语句③
- 第四步:执行循环控制条件语句④,针对循环变量重新赋值
- 第五步:根据循环变量的新值,重新从第二步开始再执行一遍

在这里插入图片描述


补充–

for循环的嵌套
//for..for 嵌套
for(初始化语句①; 循环条件语句②; 控制语句⑦) {
    for(初始化语句③; 循环条件语句④; 控制语句⑥) {
      	循环体语句⑤;
    }
}
//外层循环执行一次,内层循环执行全部

外循环控制行数,内循环控制列数(外循环控制打印几行,内循环控制每行打印几列)
外循环执行一次,内循环执行一轮(时钟:时针走一个格子,分针走一圈)。

  • 自己完成: 打印一个倒三角好正三角

注意:

for( ; ; )中的两个; 是不能多写或者漏写的, 如果不写内容,那么就是无限循环 好比 while(true) 一样;
循环条件必须是boolean类型的,因为它是作为判断的.

  • 判断条件语句无论简单还是复杂,结果是boolean类型。
  • 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
  • 一般来说:有左大括号就没有分号,有分号就没有左大括号

案例

1.键盘录入两个正整数m和n,求其最大公约数和最小公倍数
public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个正整数:");
		int m = scan.nextInt();
		
		System.out.println("请输入第二个正整数:");
		int n = scan.nextInt();
		
		//获取最大公约数
		//1.获取两个数中的较小值
		int min = (m <= n)? m : n;
		//2.遍历
		for(int i = min;i >= 1 ;i--){
			if(m % i == 0 && n % i == 0){
				System.out.println("最大公约数为:" + i);
				break;//一旦在循环中执行到break,就跳出循环
			}
		}
		//获取最小公倍数
		//1.获取两个数中的较大值
		int max = (m >= n)? m : n;
		//2.遍历
		for(int i = max;i <= m * n;i++){
			if(i % m == 0 && i % n == 0){
				System.out.println("最小公倍数:" + i);
				break;
			}
		}
	}
2.九九乘法表
for(int i = 1;i <= 9;i++){
for (int j = 1;j <= i; j++){
		System.out.print(i + "*" + j + "=" + (i*j) + " ");
 	}
System.out.println();
}	

二 . while循环

格式

初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
注意:
while()中的循环条件不能空着

执行流程

  • 第一步:执行循环条件语句①,看循环条件语句的值是true,还是false;
    如果是true,执行第二步;
    如果是false,循环语句中止,循环不再执行。
    - 第二步:执行循环体语句②;
    - - 第三步:循环体语句执行完后,重新从第一步开始再执行一遍

在这里插入图片描述

注意

while(true)(); 表示无限循环

案例

1.一张A4纸厚度是1毫米,珠穆朗玛峰的高度8848米,请问 将纸对折多少次可以达到珠穆朗玛峰的高度?
//方法一:
		int k = 1;
		int count1 = 0;
		while(k <= 8848000){
			k = (2 << count1);
	       // k = 2*k;
			count1++;	
		}
		System.out.println("要对折" + count1 + "次");

//方法二:
		int zH = 1;//单位是毫米
		int sH = 8848 * 100 * 10;
		int count = 0;
		
		
		//循环代表的是不断的对折
		while(zH < sH){
			//对折
			//zH = zH * 2;
			zH *= 2;
			count++;
		}
		
		System.out.println(count);

2.从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

独立完成

三. do.while

格式

初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

执行流程

  • 第一步:执行循环体语句①;
  • 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false; 如果是true,执行第三步; 如果是false,循环语句终止,循环不再执行。
  • 第三步:循环条件语句执行完后,重新从第一步开始再执行一遍

注意:

(1)while(循环条件)中循环条件必须是boolean类型

(2)do{}while();最后有一个分号

(3)do…while结构的循环体语句是至少会执行一次,这个和for和while是不一样的

四. 三种循环的关系

  • 从循环次数角度分析
    • do…while循环至少执行一次循环体语句
    • for和while循环先循环条件语句是否成立,然后决定是否执行循环体语句
  • 如何选择
    • 遍历有明显的循环次数(范围)的需求,选择for循环
    • 遍历没有明显的循环次数(范围)的需求,循环while循环
    • 如果循环体语句块至少执行一次,可以考虑使用do…while循环
    • 本质上:三种循环之间完全可以互相转换,都能实现循环的功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值