Java for 循环
Java for 循环专业详解
一、定义与定位
for是Java最常用的计数型循环,适用于循环次数明确、需要自增/自减控制变量的场景,结构紧凑,将循环初始化、循环条件、迭代更新三部分统一写在头部,可读性优于while。
二、标准for循环完整语法
for(初始化表达式;循环条件;更新表达式){循环体;}执行流程(固定顺序):
- 仅执行1次初始化表达式,定义循环控制变量;
- 判断循环条件,结果为
true进入循环体;为false直接终止循环; - 执行完循环体全部代码;
- 执行更新表达式(变量自增/自减);
- 回到第2步重复判断。
示例:输出1~10
for(inti=1;i<=10;i++){System.out.println(i);}三部分表达式灵活特性
- 初始化、更新可写多语句,用逗号分隔
for(inta=0,b=10;a<10;a++,b--){}- 三部分均可省略,分号
;不能丢,省略条件代表永久true(死循环)
// 死循环for(;;){}三、增强for循环(for-each,遍历数组/集合专用)
语法
for(元素类型 临时变量:数组/集合){操作临时变量}特点:无需下标,自动遍历全部元素,无法获取索引、不能直接修改原数组元素。
int[]arr={1,2,3,4};for(intnum:arr){System.out.println(num);}四、嵌套for循环
循环内部嵌套for,多用于二维数组、矩阵、图形打印;可配合标签break/continue跳出多层循环。
// 九九乘法表示例for(inti=1;i<=9;i++){for(intj=1;j<=i;j++){System.out.print(j+"*"+i+"="+i*j+"\t");}System.out.println();}带标签跳出多层循环:
outer:for(inti=1;i<=5;i++){for(intj=1;j<=5;j++){if(j==3)breakouter;}}五、循环控制关键字
break:直接终止当前整个for循环;continue:结束本次迭代,执行更新表达式后进入下一轮条件判断。
六、for、while、do-while适用场景区分
- 标准for:已知循环次数、需要计数器;
- while:循环次数未知,仅靠条件判断;
- do-while:必须先执行一次循环体再判断;
- for-each:单纯遍历数组、集合,不需要下标。
七、专业注意事项
- 初始化定义的变量作用域仅限当前for循环,循环外无法访问;
- 循环条件避免浮点数判断,浮点精度误差易造成死循环;
- 循环内尽量不频繁创建对象,减少GC开销;
- for-each仅做遍历读取,修改临时变量不会同步到原数组;
- 循环条件不要写死不变量,否则引发死循环。
