Java for 循环专业详解

一、定义与定位

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

二、标准for循环完整语法

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

执行流程(固定顺序):

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

示例:输出1~10

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

三部分表达式灵活特性

  1. 初始化、更新可写多语句,用逗号分隔
for(int a=0,b=10; a<10; a++,b--){}
  1. 三部分均可省略,分号;不能丢,省略条件代表永久true(死循环)
// 死循环
for(;;){}

三、增强for循环(for-each,遍历数组/集合专用)

语法

for(元素类型 临时变量 : 数组/集合){
    操作临时变量
}

特点:无需下标,自动遍历全部元素,无法获取索引、不能直接修改原数组元素

int[] arr = {1,2,3,4};
for(int num : arr){
    System.out.println(num);
}

四、嵌套for循环

循环内部嵌套for,多用于二维数组、矩阵、图形打印;可配合标签break/continue跳出多层循环。

// 九九乘法表示例
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();
}

带标签跳出多层循环:

outer: for(int i=1;i<=5;i++){
    for(int j=1;j<=5;j++){
        if(j==3) break outer;
    }
}

五、循环控制关键字

  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. 循环条件不要写死不变量,否则引发死循环。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐