1. 循环结构概述
Java 中有三种循环结构:for、while、do...while,用于重复执行某段代码,避免重复造轮子。
2. for 循环
2.1 格式
for (初始化语句; 循环判断条件; 更新循环变量) {
循环体语句;
}- 2.1.1 初始化语句:循环开始前执行一次,通常声明并初始化计数变量,如
int i = 0 - 2.1.2 循环判断条件:每次循环前判断,为
true则继续,为false则退出 - 2.1.3 更新循环变量:每次循环体执行完后执行,如
i++/i--
2.2 典型练习
- 2.2.1 输出 1 ~ 10:
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}- 2.2.2 输出 10 ~ 1(倒序):
for (int i = 10; i >= 1; i--) {
System.out.println(i);
}- 2.2.3 输出 100 以内偶数:结合
%取模判断
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}- 2.2.4 求 1 ~ 10 之和:在循环外声明累加变量,循环内累加
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("sum = " + sum); // 55- 2.2.5 求 5 的阶乘:累乘变量初始值必须为
1,不能为0
int total = 1;
for (int i = 1; i <= 5; i++) {
total *= i;
}
System.out.println("total = " + total); // 1203. while 循环
3.1 格式
初始化语句;
while (循环判断条件) {
循环体语句;
更新循环变量;
}- 3.1.1 与 for 的区别:
while将初始化和更新写在循环体外,适合不确定循环次数的场景
3.2 无限循环
当循环终止条件较复杂时,可使用 while(true) 构造无限循环,在内部控制退出。
- 3.2.1 示例——折纸问题:一张厚 0.1mm 的纸,折叠多少次能达到珠穆朗玛峰的高度(8848860mm)
int total = 0;
double len = 0.01;
while (true) {
if (len >= 884886) {
break;
}
len *= 2;
total++;
System.out.println("len = " + len + " total = " + total);
}4. do…while 循环
- 4.1.1 格式:
初始化语句;
do {
循环体语句;
更新循环变量;
} while (循环判断条件);- 4.1.2 核心特点:先执行循环体,再判断条件,无论条件是否成立,循环体至少执行一次
5. 示例代码
5.1 Demo03
package com.itszt.day02;
public class Demo03 {
public static void main(String[] args) {
// for 循环基本格式
for (int i = 0; i < 100; i++) {
System.out.println("i = " + i);
}
// 求 5 的阶乘
int total = 1;
for (int i = 1; i <= 5; i++) {
total *= i;
}
System.out.println("total = " + total); // 120
}
}5.2 Demo04
package com.itszt.day02;
public class Demo04 {
public static void main(String[] args) {
// while 基本用法
int num = 1;
while (num <= 10000) {
System.out.println(num);
num++;
}
// while(true):折纸问题
int total = 0;
double len = 0.01;
while (true) {
if (len >= 884886) {
break;
}
len *= 2;
total++;
System.out.println("len = " + len + " total = " + total);
}
}
}6. 总结
| 循环类型 | 判断时机 | 适用场景 |
|---|---|---|
for | 先判断再执行 | 循环次数确定时首选 |
while | 先判断再执行 | 循环次数不确定时首选 |
while(true) | 无条件循环 | 终止条件复杂,内部控制退出 |
do...while | 先执行再判断 | 至少需要执行一次时使用 |