模块 | 内容简述 |
---|---|
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是不一样的