循环
for循环
基本格式
for (初始化语句; 条件判断语句; 条件控制语句) {
循环体语句;
}
执行流程
- 执行初始化语句;
- 执行条件判断语句,如果结果为true,则继续执行,否则,循环结束;
- 执行循环体语句;
- 执行条件控制语句;
- 返回第2步。
案例1:求和
/* 求1-5之间的数据和,并把求和结果在控制台输出
*/
public class Sum {
public static void main(String[] args) {
int sum = 0; // 用于存储和值,初始值为0
//取出1-5之间的数字,依次相加求和
for (int i = 1; i <= 5; i++) {
sum += i;
}
// 控制台输出和值
System.out.println("1-5之间的数字和为:" + sum);
}
}
案例2:求偶数和
/* 求1-100之间的偶数和,并把求和结果在控制台输出
*/
public class Sum2 {
public static void main(String[] args){
int sum = 0; // 用于存储和值,初始值为0
//取出1-100之间的偶数,依次相加求和
for(int i = 1; i <= 100; i++) {
// 判断取出的数是否为偶数
if(i % 2 == 0) {
//是偶数则相加,不是则不作处理
sum += i;
}
}
// 控制台输出和值
System.out.println("1-100之间的偶数和为:" + sum);
}
}
案例3:水仙花
/* 在控制台输出所有的“水仙花数”(个位、十位、百位的数字立方和等于原数的一个三位数)
*/
public class Narcissistic {
public static void main(String[] args) {
// 遍历所有三位数
for (int i = 100; i <= 999; i++) {
// 分别获取数据的个、十、百位数
int units = i % 10;
int tens = i / 10 % 10;
int hundreds = i /100;
// 判断是否为水仙花数
if (units * units * units + tens * tens * tens + hundreds * hundreds * hundreds == i) {
System.out.println(i); // 输出水仙花数
}
}
}
}
while循环
基本格式
初始化语句;
while (条件控制语句) {
循环体语句;
条件控制语句;
}
执行流程
- 执行初始化语句;
- 执行条件判断语句,如果结果为true,则继续执行,否则,循环结束;
- 执行循环体语句;
- 执行条件控制语句;
- 返回第2步。
案例:珠穆朗玛峰
/* 世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
public class Fold {
public static void main(String[] args) {
// 定义高度
double height = 8844430;
// 定义厚度
double ply = 0.1;
// 折叠次数
int count = 0;
// 判断是否达到高度
while (ply < height) {
ply *= 2; // 折叠一次
count++; // 次数加1
}
System.out.println("折叠次数为:" + count); // 输出折叠次数
}
}
do while循环
基本格式
初始化语句;
do {
循环体语句;
条件控制语句;
} while (条件判断语句);
执行流程
- 执行初始化语句;
- 执行循环体语句;
- 执行条件控制语句;
- 执行条件判断语句,如果结果为true,则继续执行,否则,循环结束;
- 返回第2步。
跳转控制语句
-
continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
-
break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
案例:逢七过
/* 游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
需求:使用程序在控制台打印出三位数之内的满足逢七必过规则的数据
*/
public class SevenPass {
public static void main(String[] args) {
//遍历三位数以内的所有数
for (int i = 1; i <= 999; i++) {
// 分别获取数据的个、十、百位数
int units = i % 10;
int tens = i / 10 % 10;
int hundreds = i /100;
// 判断该数是否包含7或为7的倍数
if (i % 7 == 0 || units == 7 || tens == 7 || hundreds == 7) {
System.out.println(i + " ");
continue;
}
}
}
}