1736 字
约 5 分钟
6
第14章 Java for循环
2026-09-24
无标签
第14章 Java for循环
面包屑导航 章节头部 学习目标
学习目标
- 掌握for循环的基本语法和执行流程
- 理解for循环的三个组成部分:初始化、条件判断、更新
- 学会使用for循环解决实际编程问题
- 掌握嵌套for循环的使用方法
- 了解for循环的最佳实践和常见陷阱
- 学会优化循环性能和提高代码可读性
for循环基础
for循环基础语法
for循环是Java中最常用的循环结构之一,它提供了一种简洁的方式来重复执行代码块。for循环特别适合在已知循环次数的情况下使用。
for循环的基本语法语法结构:for (初始化; 条件判断; 更新) {
// 循环体
}
初始化部分
int i = 0 // 声明并初始化循环变量
- 在循环开始前执行一次
- 通常用于声明和初始化循环变量
- 可以声明多个变量,用逗号分隔
- 也可以为空(但分号不能省略)
条件判断
i < 10 // 循环继续的条件
- 每次循环前都会检查
- 返回true时继续循环
- 返回false时退出循环
- 可以为空(表示无限循环)
更新部分
i++ // 更新循环变量
- 每次循环体执行后执行
- 通常用于更新循环变量
- 可以是任何表达式
- 也可以为空
执行流程
for循环执行流程
执行步骤详解
1
初始化
执行初始化表达式,通常是声明和初始化循环变量
2
条件判断
检查循环条件,如果为true则继续,为false则退出
3
执行循环体
执行大括号内的代码块
4
更新变量
执行更新表达式,然后返回步骤2
// 打印数字1到10
for (int i = 1; i <= 10; i++) {
System.out.println("数字: " + i);
}
// 计算1到100的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1到100的和: " + sum);
for循环应用实例
for循环应用实例
数组遍历
int[] numbers = {1, 2, 3, 4, 5};
// 正向遍历
for (int i = 0; i < numbers.length; i++) {
System.out.println("索引 " + i + ": " + numbers[i]);
}
// 反向遍历
for (int i = numbers.length - 1; i >= 0; i--) {
System.out.println("索引 " + i + ": " + numbers[i]);
}
字符串处理
String text = "Hello Java";
// 遍历字符串中的每个字符
for (int i = 0; i < text.length(); i++) {
char ch = text.charAt(i);
System.out.println("位置 " + i + ": " + ch);
}
// 统计元音字母数量
int vowelCount = 0;
for (int i = 0; i < text.length(); i++) {
char ch = Character.toLowerCase(text.charAt(i));
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
vowelCount++;
}
}
System.out.println("元音字母数量: " + vowelCount);
数学计算
// 计算n的阶乘
int n = 5;
long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
System.out.println(n + "! = " + factorial);
// 计算斐波那契数列
int count = 10;
int a = 0, b = 1;
System.out.print("斐波那契数列: " + a + " " + b + " ");
for (int i = 2; i < count; i++) {
int next = a + b;
System.out.print(next + " ");
a = b;
b = next;
}
嵌套for循环
嵌套for循环
嵌套for循环是指在一个for循环内部包含另一个for循环。这种结构常用于处理二维数据、生成图案或进行复杂的数据处理。
性能注意事项嵌套循环的时间复杂度是各层循环次数的乘积。例如,两层各循环n次的嵌套循环时间复杂度为O(n²),要谨慎使用。
打印图案
// 打印直角三角形
int rows = 5;
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println(); // 换行
}
// 打印等腰三角形
for (int i = 1; i <= rows; i++) {
// 打印空格
for (int j = 1; j <= rows - i; j++) {
System.out.print(" ");
}
// 打印星号
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
二维数组处理
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 遍历二维数组
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
// 计算矩阵对角线元素之和
int diagonalSum = 0;
for (int i = 0; i < matrix.length; i++) {
diagonalSum += matrix[i][i]; // 主对角线
}
System.out.println("对角线元素之和: " + diagonalSum);
九九乘法表
// 打印九九乘法表
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();
}
代码演示
完整代码演示
以下是一个综合性的for循环示例程序,展示了各种for循环的使用场景:
💻 查看完整代码 - 在线IDE体验 最佳实践
for循环最佳实践
编程建议与注意事项
推荐做法
- 使用有意义的循环变量名
- 避免在循环体内修改循环变量
- 合理使用break和continue
- 优先使用for-each循环遍历集合
- 避免不必要的嵌套循环
- 在循环外声明不变的变量
避免的做法
- 在循环条件中调用复杂方法
- 创建不必要的对象
- 过度嵌套循环
- 忽略边界条件检查
- 在循环体内进行昂贵的操作
- 使用浮点数作为循环变量
性能优化技巧
// 不推荐:每次循环都计算length
for (int i = 0; i < array.length; i++) {
// 处理array[i]
}
// 推荐:提前计算length
int length = array.length;
for (int i = 0; i < length; i++) {
// 处理array[i]
}
// 更推荐:使用for-each循环
for (int element : array) {
// 处理element
}
章节总结
章节总结
- for循环由初始化、条件判断、更新三部分组成,提供了简洁的循环控制方式
- for循环特别适合已知循环次数的场景,如数组遍历、计数操作等
- 嵌套for循环可以处理多维数据,但要注意时间复杂度的增长
- 合理使用for循环可以提高代码的可读性和执行效率
- 遵循最佳实践,避免常见陷阱,编写高质量的循环代码
- 在适当的场景下,考虑使用for-each循环替代传统for循环
评论
0 条
还没有评论,先写一条吧。