- for循环案例
- 案例六:回文数
- 案例七:逢七过
- while循环语句
- 求奇数和
- 案例:珠穆朗玛峰
- do...while循环语句
- 三种循环语句的区别
-
需求:输出所有五位数的回文数
-
提示:什么是“回文数”?
-
一个数,无论是从左往右读,还是从右往左读,读起来都相同的数,叫做:“回文数!”
举例:
10101,12321:是回文数
12345:不是回文数。
规律:
个位=万位
十位=十位
百位无关 -
实现步骤
- 获取五位数,通过循环实现。
- 获取没一个五位数的个位,十位,千位,万位
- 判断该五位数是否是回文数
- 输出回文数
package com.sdh;
public class ForTest06 {
public static void main(String[] args) {
int count = 0;
for (int i = 10000; i < 100000; i++) {
// 获取每一个五位数的个(individual)位,
// 十(ten)位,
// 百(Hundredth)位,
// 千(Thousand )位
// 万(Ten thousand)位
int individual = i % 10;
int ten = i / 10 % 10;
int thousand = i / 1000 % 10;
int tenThousand = i / 10000 % 10;
if ((individual == tenThousand) && (ten == thousand)) {
System.out.println(i);
count++;
}
//统计回文数个数
}
System.out.println("回文数的个数为:" + count);
}
}
案例七:逢七过
- 需求:从任意数字开始报数,当要报数字包含7或7的倍数,说:过。打印出1-100之间满足逢七必过规则的数据
- 分析:
- 数据的范围在1-100之间,用循环实现
- 满足条件:数字包含7(个位是7,或者十位是7)或者是7的倍数。
假设有一个数据:x;
判断个位是7:x%10 == 7
判断十位是7:x/10%10==7;
判断是7的倍数:x%7 ==0 ;
语句格式:
while(条件判断语句){
循环体语句;
条件控制语句;
}
例如:
int i=1;
while(i<=5){
System.out.println(“HelloWorld”);
i++;
}
- 流程图如图示
- 需求:求1-100之间的奇数和,并把求和结果在控制台输出
- 分析:
- 对1-100的奇数求和,判断条件不同;
- 判断条件是奇数才参与运算,条件判断是否为奇数
- 循环执行完毕打印结果!
package com.itheima1;
public class WhileDemo01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
while (i % 2 != 0) {
sum += i;
i++;
}
}
System.out.println("1到100的奇数和为:" + sum);
}
}
package com.itheima1;
public class WhileTest01 {
public static void main(String[] args) {
int sum=0;
// 获取1-100的数
int i=1;
while (i<=100){
// 判断是否为奇数
if (i%2!=0){
sum+=i;
}
i++;
}
System.out.println("1-100的奇数和为:"+sum);
}
}
package com.itheima1;
public class WhileTest011 {
public static void main(String[] args) {
int sum=0;
int i=1;
while (i<=100){
sum+=i;
i+=2;
}
System.out.println(sum);
}
}
案例:珠穆朗玛峰
- 需求:一张纸厚度:0.001m;珠穆朗玛峰高:8848.86m;求折叠多少次,就可以保证厚度不低于珠峰高度。
- 分析;
- 反复循环,使用循环,选择for循环还是while循环?
小技巧:循环次数明确,使用for循环;循环次数不明确,使用while循环 - 纸张没折叠一次,厚度加倍,因此要先定义纸张的厚度,在循环中是厚度加倍
- 停止折叠:纸张厚度大于等于珠峰高度
- 要求统计折叠次数,用到统计思想
- 实现步骤:
① 定义统计变量,初始化值为0;
②定义纸张厚度变量和珠峰高度变量
③用while循环实现反复折叠,判断条件是纸张厚度小于珠峰高度
④循环体中要做两件事情:一是纸张厚度加倍。二是统计变量+1
⑤当循环变量结束,输出统计变量的值
package com.itheima1;
public class WhileDemo02 {
public static void main(String[] args) {
double paper=0.001;
double mount=8848.86;
int count=0;
while (paper
paper*=2;
count++;
}
System.out.println("要折叠的次数为:"+count+"次");
}
}
do…while循环语句
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
范例:
int i=1;
do{
System.out.println(“HelloWorld!”);
i++
}while(i<=5);
- 执行流程
package com.itheima1;
public class DoWhileDemo {
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循环结束之后,就不可以继续使用了
- 条件控制语句所控制的自增变量,在while循环结束后,还可以继续使用
死循环格式:
- for(;;){}
- while(true){}
- do{}while(true);
package com.itheima1;
public class LoopTest {
public static void main(String[] args) {
// 死循环格式
}
}



