JavaSE之路08--For循环语句
1.循环语句(必会):
1)生活中的循环:
a)太阳每天东升西落
b)每天早上起床跟女朋友发早安信息: 早安,么么达,爱你一万年
2)在Java中循环不能无限循环,要有条件的循环:
a)你能这一辈子每天早上起床跟女朋友发早安信息吗?当然不能.
b)循环的条件是:女朋友还没有变成老婆.
c)天将降大任于斯人也,必先盗其QQ,封其微博,收其wifi,夺其手机。让其静心学习Java 欧耶。
2.for循环语句(必会):
格式
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
执行流程:
1:执行初始化语句
2:执行判断条件语句
如果这里是true,就继续
如果这里是false,循环就结束
3:执行循环体语句
4:执行控制条件语句
5:回到b
示例1:输出10次"老婆老婆我爱你,阿弥托福保佑你"
for(int i=1;i<=10;i++){
System.out.println(“老婆老婆我爱你,阿弥托福保佑你!”);
}
示例2:输出1.2.3.4.5.6.7.8.9.10
System.out.println(1);
System.out.println(2);
…
System.out.println(10);
肯定不行,换成如下的:
for(int i=1;i<=10;i++){
System.out.println(i);
}
为什么可以:因为i在循环过程中不断的变化
注意事项
0.初始化语句只执行一次
1.判断条件语句无论简单还是复杂,结果是boolean类型
2.循环体语句如果是一条,可以省略大括号,但是不建议
提问:
1)只想输出5次怎么办?
1.for(int i=1;i<=5;i++)
2.for(int i=0;i<5;i++)
3.for(int i=1;i<=10;i+=2)
2)结论:如果想循环n次,记住代码:
for(int i=1;i<=n;i++)
示例2:看代码,给结果
int x=1,y=2;
for(int i=1;i<=3;i++){ i=1 ,2,3
x+=y;
y++;
}
System.out.println(“x=”+x+" y="+y);
示例3:看代码,给结果
int x=1;
for(int i=1;i<=3;i++){ i=1 ,2 ,3
x+=i;
}
System.out.println(“x=”+x);
示例4:编写程序求1…10的和
讲思路:
a)画图:有一个空盘子,分别将1…10的每一个数 累加到这个空盘子中
b)有没有循环:有循环,因为要这样加10次
int s; //定义一个变量保存求和的结果
for(int i=1;i<=10;i++){
s=1;
}
这样实际上是将s=1这个语句运行了10次,所以s的值为1
换成:
int s=0; //注意初值为0
for(int i=1;i<=10;i++){
s=s+1;
}
这样就是"累加",s=s+1. 例如:
s=1;
s=s+3;
s=s+2;
但是依然达不到求1…10求和,这是求:1+1+1+1…
改成:
int s=0; //注意初值为0
for(int i=1;i<=10;i++){
s=s+i; //因为i在变化
}
示例5:求1…100的偶数之和
int s=0; //注意初值为0
for(int i=1;i<=10;i++){
if(i%2==0) {
s=s+i;
}
}
或者:
int s=0; //注意初值为0
for(int i=0;i<=10;i+=2){
s=s+i;
}
示例6:让用户输入一个数求n的阶层. 例如 如果n是5 则求123…n
int s=1; //注意初值为1
for(int i=1;i<=n;i++){
s=si;
}
示例7:在控制台输出所有的"水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
思路:
1)个位:153%10 = 3
2)十位:153/10%10 = 5
3)百位:153/10/10%10 = 1
结论(对一个三位数):
个位:n%10
十位:n/10%10
百位:n/100
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;
//让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i) {
//如果相同,就把该数据在控制台输出。
System.out.println(i);
}
}
}
上一篇: C++输出二进制数