Appearance
7.1 for 循环
for 循环的概念
for 循环是 Java 中最常用的循环结构之一,它用于重复执行一段代码,直到满足特定条件。for 循环特别适合已知循环次数的场景。
for 循环的语法
java
for (初始化表达式; 条件表达式; 更新表达式) {
// 循环体:需要重复执行的代码
}- 初始化表达式:在循环开始前执行一次,用于初始化循环变量
- 条件表达式:每次循环开始前检查,返回布尔值,为 true 时执行循环体,为 false 时结束循环
- 更新表达式:每次循环体执行完毕后执行,用于更新循环变量
- 循环体:需要重复执行的代码块
for 循环的执行流程
- 执行初始化表达式
- 检查条件表达式:
- 如果为 true,执行循环体
- 如果为 false,结束循环
- 执行更新表达式
- 重复步骤 2-3,直到条件表达式为 false
for 循环的使用
基本用法
java
public class ForLoopExample {
public static void main(String[] args) {
// 打印 1 到 5
for (int i = 1; i <= 5; i++) {
System.out.println("i = " + i);
}
}
}输出结果:
i = 1
i = 2
i = 3
i = 4
i = 5示例:计算 1 到 100 的和
java
public class SumExample {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("Sum of 1 to 100: " + sum);
}
}输出结果:
Sum of 1 to 100: 5050示例:遍历数组
java
public class ArrayLoopExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[" + i + "] = " + numbers[i]);
}
}
}输出结果:
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5示例:使用 for-each 循环遍历数组
for-each 循环(也称为增强型 for 循环)是 Java 5 引入的一种简化的循环方式,专门用于遍历数组和集合。
java
public class ForEachExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println("Number: " + number);
}
}
}输出结果:
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5for 循环的变体
1. 省略初始化表达式
java
int i = 0;
for (; i < 5; i++) {
System.out.println("i = " + i);
}2. 省略条件表达式
java
for (int i = 0; ; i++) {
if (i >= 5) {
break;
}
System.out.println("i = " + i);
}3. 省略更新表达式
java
for (int i = 0; i < 5; ) {
System.out.println("i = " + i);
i++;
}4. 省略所有表达式
java
int i = 0;
for (;;) {
if (i >= 5) {
break;
}
System.out.println("i = " + i);
i++;
}for 循环的应用场景
1. 固定次数的循环
java
// 打印 10 次 "Hello"
for (int i = 0; i < 10; i++) {
System.out.println("Hello");
}2. 遍历数组或集合
java
// 遍历字符串数组
String[] names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.length; i++) {
System.out.println("Name: " + names[i]);
}
// 使用 for-each 遍历
for (String name : names) {
System.out.println("Name: " + name);
}3. 数值计算
java
// 计算阶乘
int n = 5;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
System.out.println(n + "! = " + factorial);示例:for 循环的使用
java
public class ForLoopApplication {
public static void main(String[] args) {
// 打印乘法表
System.out.println("Multiplication Table:");
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + " × " + i + " = " + (i * j) + "\t");
}
System.out.println();
}
// 计算斐波那契数列的前 10 项
System.out.println("\nFibonacci Sequence:");
int a = 0, b = 1;
System.out.print(a + " " + b + " ");
for (int i = 3; i <= 10; i++) {
int c = a + b;
System.out.print(c + " ");
a = b;
b = c;
}
System.out.println();
// 查找数组中的最大值
int[] numbers = {5, 3, 9, 1, 7, 2, 8};
int max = numbers[0];
for (int number : numbers) {
if (number > max) {
max = number;
}
}
System.out.println("\nMaximum value: " + max);
}
}常见问题
1. 循环条件错误
症状:循环次数不符合预期,可能导致无限循环或循环次数过少
解决方案:仔细检查循环条件,确保它能够在适当的时候变为 false
2. 循环变量更新错误
症状:循环变量没有正确更新,可能导致无限循环
解决方案:确保在循环体或更新表达式中正确更新循环变量
3. 数组索引越界
症状:运行时错误:ArrayIndexOutOfBoundsException
解决方案:确保数组索引在有效范围内,通常使用 i < array.length 作为循环条件
4. 死循环
症状:循环永远不会结束
解决方案:确保循环条件最终会变为 false,或在循环体中使用 break 语句
总结
for 循环是 Java 中最常用的循环结构之一,它适用于已知循环次数的场景。for 循环的语法简洁明了,执行流程清晰。
在使用 for 循环时,需要注意:
- 初始化表达式、条件表达式和更新表达式的正确设置
- 循环体的逻辑正确性
- 避免死循环和数组索引越界等错误
- 合理使用 for-each 循环遍历数组和集合
通过合理使用 for 循环,可以简化代码,提高程序的可读性和效率。
