知识回顾
循环结构 重复不停的做同样的事情
正常执行循环 三个必要的条件 初始值 终点判定条件 变化量
允许将三个条件都写在小括号内
for( 1初始值 ; 258终点判定条件 ; 47变化量 ){
36好多好多执行的代码
}
变量的生命周期问题
变化量放置在循环内执行 可能会因为变化量的位置 影响执行的最终效果
======================================================
小任务
1.加工零件问题
甲乙丙丁四个人加工零件
加工的总零件数为370个
如果甲加工的零件数多10
如果乙加工的零件数少20
如果丙加工的零件数乘以2
如果丁加工的零件数除以2
则四个人加工的零件数就相等啦
求 四个人加工的零件个数分别是多少?
解: 设 四个人相等时的数为x
(x-10) + (x+20) + (x/2) + (x*2) == 370
x x 0 2x 95
//我们自己通过草稿纸做一个演算--->最终结果
让计算机帮我们 用很多的数字挨个尝试一下 看看是否满足上述条件
for(int x =45;x<95;x++){
if((x-10) + (x+20) + (x/2) + (x*2) == 370){
System.out.println("甲加工的零件数为:"+(x-10));
System.out.println("乙加工的零件数为:"+(x+20));
System.out.println("丙加工的零件数为:"+(x/2));
System.out.println("丁加工的零件数为:"+(x*2));
}
}
2.鸡兔同笼问题
小鸡 小兔子 关在同一个笼子里 小鸡两只脚 小兔子四只脚
小鸡+小兔子 总数 50只 脚的总数160只
求 小鸡 和 小兔子各多少只。
解: 设 小鸡x只 小兔子 (50-x)
x*2+(50-x)*4 ==160
给计算机一个范围 挨个尝试某一个x满足我们的条件
for(int x=1;x<50;x++){
if(x*2+(50-x)*4 ==160){
System.out.println("小鸡的个数为:"+x);
System.out.println("小兔子个数为:"+(50-x));
}
}
3.通过循环找寻三位数字的水仙花数
153---> 1 5 3
1 + 125 + 27 == 153
100-999之间挨个尝试 满足上述规则数字 153 370 371 407
for(int num=100;num<1000;num++){
int b = num/100;
int s = num/10%10;// num%100/10;
int g = num%10;
if(b*b*b+s*s*s+g*g*g==num){
System.out.println(num+"是水仙花数");
}
}
for(int num=100;num<1000;num++){
if(Math.pow(num/100,3)+Math.pow(num%100/10,3)+Math.pow(num%10,3)==num){
System.out.println(num+"是水仙花数");
}
}
=============================================================
循环嵌套
需求 控制台打印*
1.控制台输出一行 **** 随意个数
2.控制台输出4行 **** 每一行个数随意
****
****
****
3.控制台输出4行 * i==1 1
** i==2 2
*** i==3 3
****
4.控制台输出4行 $$$* i==1 3 1
$$** i==2 2 2
$*** i==3 1 3
**** i==4 0 4
小任务
1. *******
***#***
**###**
*#####*
2. 1
121
12321
1234321
3. 1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
4. 找寻2-100之间的素数(质数) 只能被1和本身整除的数字 2 3 5 7 11
2是素数
3是素数
4不是素数
5是素数
6不是素数
7是素数
8不是素数
9不是素数