目录
前言:上篇结尾我们讲到了如何用for循环进行1~n求和,今天我们来讲剩余的两个循环,while循环和do...while循环。在本篇最后会讲到3个循环之间的区别。
在将while循环之前,我们先讲一个关于for循环的一个练习。
练习(输出1~1000之间的水仙花数)
首先我们来讲什么是水仙花数。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
那我们如何来求解每个位上的数字?假定一个数为389.
首先,我们先来求解百位上的数字
int x = 389 / 100
其次,我们求解十位上的数字
int y = 389 / 10 % 10
最后,我们来求解个位上的数字
int z = 389 % 10
我们再通过for循环就能求出1~1000之间的所有水仙花数
代码示例
public class Demo04 {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
//求百位数字
int x = i / 100;
//求十位数字
int y = i / 10 % 10;
//求个位数字
int z = i % 10;
if (x * x * x + y * y * y + z * z * z == i) {
System.out.println(i);
}
}
}
}
while循环
格式:while(条件判断语句){
循环体;
条件控制语句;
}
案例
public class Demo06 {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println("Hello World!");
i++;
}
}
}
练习
题目:
一张纸折叠多少次,可以折叠成珠穆朗玛峰的高度。其中珠穆朗玛峰高度为8844.43m,一张纸的初始厚度为0.1mm。
首先,我们先将已知数据在代码中显示出来
int count = 0; //计数器
double paper = 0.1; //初始纸张厚度
int zmf = 8844430; //珠穆朗玛峰高度
其次,利用while循环
while (paper <= zmf) {
paper *= 2; //每折叠一次,纸张厚度加倍
count++; //每折叠一次,次数加一
}
最后,将结果打印输出
System.out.println("需要折叠" + count + "次");
完整代码
public class Demo07 {
public static void main(String[] args) {
int count = 0; //计数器
double paper = 0.1; //初始纸张厚度
int zmf = 8844430; //珠穆朗玛峰高度
while (paper <= zmf) {
paper *= 2; //每折叠一次,纸张厚度加倍
count++; //每折叠一次,次数加一
}
System.out.println("需要折叠" + count + "次");
}
}
do...while循环
格式:初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
案例
public class Demo08 {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("Hello World!");
i++;
} while (i <= 5);
}
}
三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)。
- do...while循环先执行一次循环体,然后判断条件是否成立,是否执行循环体(先执行后判断)
for和while区别
- 条件控制语句所控制的自增变量,归属for循环语句语法中,for循环结束后便不能被访问。
- 条件控制语句所控制的自增变量,不归属while循环语句语法中,while循环结束后,任可以继续使用。
死循环
public class Demo09 {
public static void main(String[] args) {
//死循环
for (;;){
System.out.println("for");
}
while (true){
System.out.println("while");
}
do {
System.out.println("do...while");
}while (true);
}
}
结束语
关于Java中的判断语句和循环语句到今天就大致讲完了,后面还有更多的有趣的知识等着我们去学习,我也会陆续更新后面的Java知识,你的一键三连就是对我最大的鼓励。