for 循环

本文详细介绍了Java中的for循环语法,包括可选的初始化、条件判断和更新步骤,并通过示例展示了如何在不同情况下使用它们。此外,还深入探讨了前置递增操作符++i和后置递增操作符i++的区别,以及它们在大量数据处理时的性能差异。文章强调,尽管两者在for循环中效果相同,但++i通常在性能上优于i++,因为它避免了额外的内存操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、语法

for (语句1; 语句2; 语句3) {
  循环体
}

语句 1:在循环体开始前执行。
语句 2:定义运行循环体的条件。
语句 3:在循环体已被执行之后执行(这就是循环中的 ++i 和 i++ 结果一样的原因,但是性能不一样)

1️⃣语句 1:可选,也就是说不使用也可以。

int[] arr = new int[]{1, 2, 3};
int m = 0, len = arr.length;
for (; m < len; m++) {
    System.out.println(arr[m]);
}

也可以在语句 1 中初始化任意(或者多个)值:

int[] arr = new int[]{1, 2, 3};
for (int m = 0, len = arr.length; m < len; m++) {
    System.out.println(arr[m]);
}

2️⃣语句 2:可选,通常语句 2 用于评估初始变量的条件。如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。如果省略了语句 2,那么必须在循环内提供 break,否则循环就无法停下来。

3️⃣语句 3:可选,通常语句 3 会增加初始变量的值。有多种用法。增量可以是负数(i–),或者更大(i=i+15)。语句 3 也可以省略(比如当循环内部有相应的代码时):

int[] arr = new int[]{1, 2, 3};
int m = 0, len = arr.length;
for (; m < len; ) {
    System.out.println(arr[m]);
    m++;
}

二、++i 和 i++ 的区别++在前先自加后运算;++在后先运算后自加

int i = 10;
System.out.println(i++);   //10 ,先引用原值,然后加1

等价于:

int m = 10;
System.out.println(m);    //先输出m
i++;                      //然后加1

int n = 10;
System.out.println(++n);  //11,这次是先加1,然后输出

三、for 循环中 ++i 和 i++ 的区别

根据上面的 for 循环的语法定义 ++i 和 i++ 的结果是一样的,都要等循环体执行完毕才能执行语句 3,但是性能是不同的。在大量数据的时候 ++i 的性能要比 i++ 的性能好,原因:i++ 由于是在使用当前值之后再 +1,所以需要一个临时的变量来转存。而 ++i 则是在直接 +1,省去了对内存的操作的环节,相对而言能够提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值