Java for 循环

Java for 循环专业详解

一、定义与定位

for是Java最常用的计数型循环,适用于循环次数明确、需要自增/自减控制变量的场景,结构紧凑,将循环初始化、循环条件、迭代更新三部分统一写在头部,可读性优于while

二、标准for循环完整语法

for(初始化表达式;循环条件;更新表达式){循环体;}

执行流程(固定顺序):

  1. 仅执行1次初始化表达式,定义循环控制变量;
  2. 判断循环条件,结果为true进入循环体;为false直接终止循环;
  3. 执行完循环体全部代码;
  4. 执行更新表达式(变量自增/自减);
  5. 回到第2步重复判断。

示例:输出1~10

for(inti=1;i<=10;i++){System.out.println(i);}

三部分表达式灵活特性

  1. 初始化、更新可写多语句,用逗号分隔
for(inta=0,b=10;a<10;a++,b--){}
  1. 三部分均可省略,分号;不能丢,省略条件代表永久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;}}

五、循环控制关键字

  1. break:直接终止当前整个for循环;
  2. continue:结束本次迭代,执行更新表达式后进入下一轮条件判断。

六、for、while、do-while适用场景区分

  1. 标准for:已知循环次数、需要计数器;
  2. while:循环次数未知,仅靠条件判断;
  3. do-while:必须先执行一次循环体再判断;
  4. for-each:单纯遍历数组、集合,不需要下标。

七、专业注意事项

  1. 初始化定义的变量作用域仅限当前for循环,循环外无法访问;
  2. 循环条件避免浮点数判断,浮点精度误差易造成死循环;
  3. 循环内尽量不频繁创建对象,减少GC开销;
  4. for-each仅做遍历读取,修改临时变量不会同步到原数组;
  5. 循环条件不要写死不变量,否则引发死循环。