循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
for (初始化语句;循环条件语句;迭代语句) {
循环体语句;
}
执行流程: 1.先执行初始化语句; 2.看循环条件语句中的结果是true还是false; 3.如果是true,执行循环体语句,继续执行; 如果是false,for语句结束; 4.执行迭代语句; 5.跳回第2步,继续执行;
eg:
/*
打印1->5 和 5->1
*/
for(int i = 1; i <= 5; i++){
System.out.println(i);
}
for(int i = 5; i >= 1; i--){
System.out.println(i);
}
/*练习:打印所有的水仙花数
分析:
* 什么是水仙花数呢?
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数。
* 153 = 1*1*1 + 5*5*5 + 3*3*3
*
* 1.三位数其实就告诉了我们水仙花数的范围
* 100-999
* 2.如何获取一个数据的每一个位上的数呢?
* 举例:我有一个数据153,请问如何获取到个位,十位,百位
* 个位:153%10 = 3;
* 十位:153/10%10 = 5;
* 百位:153/10/10%10 = 1;
* 千位:...
* 万位:...
* 3.让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制 台输出 */
public class ForTest04 {
public static void main(String[] args) { //通过循环获取到每一个三位数
for(int x=100; x<1000; x++) {
//获取个位,十位,百位
int ge = x % 10;
int shi = x / 10 % 10;
int bai = x / 10 / 10 % 10;
//让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在 控制台输出
if((ge * ge * ge + shi * shi * shi + bai * bai * bai) == x) { System.out.println(x);
}
}
}
}
/**
*分析以下需求,并用代码实现:
(1)打印出四位数字中个位+百位=十位+千位并且个位数为偶数,
千位数为奇数的数字,并打印符合条件的 数字的个数
(2)符合条件的数字,每行显示5个,用空格隔开,
打印格式如下: 1012 1034 1056 1078 1100 1122 1144 1166 1188 1210
...... 符合条件的数字总共有: 165个
*/
public class ForTest06 {
public static void main(String[] args){
int sum = 0;
for(int i = 1000 ; i < 10000 ; i+=2){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
int qian = i / 1000 % 10;
int sum1 = ge + bai;
int sum2 = shi + qian;
if(sum1 == sum2 && qian % 2 != 0){
sum++;
if(sum % 5 == 0){
System.out.println(i);
}else{
System.out.print(i+" ");
}
}
}
System.out.println(sum);
}
}