二、循环语句
1、for循环语句格式和执行流程:
1.1、格式:for(初始化语句;条件判断语句;条件控制语句;){
循环体语句;
}
1.2、执行流程:
1、执行初始化语句
2、执行条件判断语句,看结果为true,还是false
如果是false,循环结束
如果是true,继续执行
3、执行循环体语句
4、执行条件控制语句
5、返回2继续执行
1.3、案例:水仙花
需求:在控制台输出所有“水仙花数”
什么是“水仙花数”?
水仙花数是一个三位数,水仙花数的个位,十位,百位的数字立方和等于原数。
例:153、370、371、407
代码实现:
public class Day02_demo5 {
public static void main(String[] args) {
for (int i=100;i<1000;i++){
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
System.out.println(i+"是水仙花数");
}
}
}
}
代码分析:
1、遍历所有三位数,从100开始到999结束
for (int i=100;i<1000;i++){
2、分别取出三位数的个位、十位、百位的值
3、判断三位数中哪些是“水仙花数”
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
4、输出“水仙花数”
System.out.println(i+"是水仙花数");
2、while循环语句格式和执行流程
2.1、格式:初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
2.2、执行流程:
1、执行初始化语句;
2、执行条件判断语句,看结果为true还是false;
如果为true,循环继续;
如果为false,循环结束;
3、执行循环体语句;
4、执行条件控制语句;
5、返回2继续执行;
2.3、案例:珠穆朗玛峰
需求:世界最高峰是珠穆朗玛峰(8844.43米),假如我有一张足够大的纸,他的厚度是0.1毫米。请问对折多少次可以折成珠穆朗玛峰的高度。
代码实现:
public class forDemo{
public static void main(String[] args) {
int count = 0;
double paper = 0.1;
int zf = 8844430;
while(paper <= zf){
paper *= 2;
count++;
}
System.out.println("需要折叠"+ count +"次");
}
}
代码分析:
1、因为要反复折叠,所以用到循环
while(paper <= zf){
2、循环过程中纸张要反复折叠,每次折叠厚度翻倍,所以需要定义纸张厚度。
double paper=0.1;
while(paper <= zf){
paper*=2;
3、折叠过程中,纸张厚度大于或等于珠峰的高度循环结束
int zf=8844430;
while(paper <= zf)
4、设置计数器,在循环中执行累加,记录纸张折叠次数
int count=0;
while(paper <= zf){
count++;
}