🔥「炎码工坊」技术弹药已装填!
点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】
场景引入:如何优雅地打印1到10?
假设你需要编写一个程序,打印数字1到10。如果不用循环,你可能会这样写:
System.out.println(1);
System.out.println(2);
// ... 重复9次
这种写法显然冗余且低效。此时,循环结构就是你的救星。Java中的for
循环能让我们用固定的代码模板重复执行任务,就像给程序装上自动化的引擎。
传统for循环:精准控制的武器
基础语法与执行流程
语法结构:
for (初始化语句; 条件表达式; 迭代操作) {
// 循环体
}
执行流程:
- 1. 初始化:仅在循环开始时执行一次(如定义计数器
int i = 1
)。 - 2. 条件判断:每次循环前检查条件(如
i <= 10
),为true
则继续。 - 3. 执行循环体:重复执行的代码块(如打印
i
)。 - 4. 迭代更新:每次循环结束后执行(如
i++
)。
代码示例:
public class PrintNumbers {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i); // 打印1到10
}
}
}
实战案例:计算奇数与偶数的和
需求:计算1到100之间所有奇数和偶数的总和。
解决方案:
public class SumOddEven {
public static void main(String[] args) {
int oddSum = 0, evenSum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
evenSum += i; // 偶数累加
} else {
oddSum += i; // 奇数累加
}
}
System.out.println("奇数和:" + oddSum + ",偶数和:" + evenSum);
}
}
流程图:
增强型for循环:简洁优先的选择
语法结构:
for (元素类型 变量名 : 集合或数组) {
// 循环体
}
适用场景:
- 仅需遍历元素,无需操作索引时(如打印数组内容)。
- 示例:
public class PrintArray {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num); // 无需手动管理索引
}
}
}
优缺点对比:
特性 | 传统for循环 | 增强型for循环 |
灵活性 | 支持索引操作,控制更精细 | 无法直接访问索引 |
可读性 | 条件分散,稍复杂 | 语法简洁,易读性高 |
适用场景 | 需要修改元素、复杂逻辑控制 | 仅遍历集合或数组 |
性能 | 与增强型相差无几 | 略优(避免迭代器开销) |
如何选择?记住这3条规则
- 需要索引时用传统for:如修改数组元素、操作相邻元素(如
arr[i] + arr[i+1]
)。 - 只读遍历时用增强型for:代码简洁且避免越界错误。
- 无限循环慎用
for(;;)
:需配合break
条件退出,否则程序将陷入死循环。
总结:循环的本质是「自动化重复」
通过for
循环,我们不仅解决了重复代码的问题,还实现了对复杂逻辑的精准控制。无论是传统for的灵活性,还是增强型for的简洁性,都是Java为开发者提供的强大工具。记住:
- 传统for是「指挥家」,掌控全局节奏;
- 增强型for是「旁观者」,专注观察而不干预细节。
掌握这两种循环,你就能在程序世界中轻松驾驭重复的任务!
🚧 您已阅读完全文99%!缺少1%的关键操作:
加入「炎码燃料仓」
🚀 获得:
√ 开源工具红黑榜 √ 项目落地避坑指南
√ 每周BUG修复进度+1%彩蛋
(温馨提示:本工坊不打灰工,只烧脑洞🔥)