java里面for循环中i++与++i的区别

C++入门教程(十):for 语句 小古银的官方网站(完整教程):http://www.xiaoguyin.com/ C++入门教程视频:https://www.bilibili.com/video/av20868986/ 目录 目录 基础示例 1 基础讲解 1 基础示例 2 基础讲解 2 巩固练习(用 for 语句实现) 接下来讲解的是循环中的for语句。 for (int i = 0; i &l... 阅读详情

因为我是做Android的嘛,平时在使用for循环时,都是这样写的:for(int i=0; i<10; i++),用的 i++。然而今天看算法的时候,发现有的for循环是这样的:for(int i=0; i<10; ++i),用的 ++i。

刚刚看到的时候就在想在for循环中 i++ 和 ++i 有什么区别呢?

越想心里越闹不停,没心思往下看了,只好自己取查查资料,再用实例尝试了一下,发现它们在for循环里面效果是一模一样的!

首先我们应该都知道++i与i++的区别是: ++i 是先执行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i=i+1;

然后我们也知道for循环的执行顺序如下:

for(A;B;C)
{
   D;
}
  1. 进入循环执行A;//只是进入的时候执行.
  2. 执行B;//条件为真才执行D,不然就跳出for了.
  3. 执行D;
  4. 执行C;
  5. 再回到第2步开始执行

那么我们接着看下面实例:

1.for (int i=0; i<10; i++):

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

相当于:

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

2.for (int i=0; i<10; ++i):

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

相当于:

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

在上述的循环体中,i++ 和 ++i 的作用是一样的。

打印出来的信息都是:

0
1
2
3
4
5
6
7
8
9

打印信息也证明了 i++ 和 ++i 的作用是一样的。

然而到这步我们也只是知道了作用效果是一样,但是他们肯定是有一定区别的。

所以我去把循环耗时也打印了出来,
循环次数=100的时候:这里写图片描述,

循环次数=1000的时候:这里写图片描述,

循环次数=10000的时候:这里写图片描述,

相信大家也看出来区别了,没错,就是运行时间有差别,当循环此时较少没多少出入,但是当我们循环的次数上去了那么这差距就有点明显了。然后仔细探考后发现:在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值赛如进去,最后不用了才去释放。多了这么一系列操作时间当然多了啊,最后建议大家以后在写for循环且不影响逻辑的情况下多使用++i,少使用i++,这也算一定程度的系统优化不是( ̄▽ ̄)”。本片文章到此结束,谢谢大家观看!


为了向别人、向世界证明自己而努力拼搏,而一旦你真的取得了成绩,才会明白:人无须向别人证明什么,只要你能超越自己。

新手如何结合pbootCMS和宝塔面板快速构建网站 摘要: 新手可通过pbootCMS(轻量CMS)和宝塔面板(可视化工具)快速搭建网站,无需命令行。步骤包括:1) 准备服务器(Linux/CentOS7.x)和域名;2) 安装宝塔面板并配置LNMP环境(PHP7.4+MySQL5.7);3) 创建网站目录,上传并解压pbootCMS源码,设置文件权限;4) 运行安装向导,填写数据库信息和管理员账号;5) 测试前台/后台功能,优化性能并绑定域名。全程约30-60分钟,宝塔简化运维,pbootCMS便于内容管理,适合零基础用户。注意定期更新和备份以保障安全。 阅读详情

相关推荐

新疆地形数据下载:30米、12.5米、5米DEM地形数据

新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里。新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称“三山夹两盆”。三山指阿尔泰山、昆仑山、天山,两盆是指塔里木盆地和准噶尔盆地。 对精度要求不高的话,可以直接使用图新地球下载 新疆30米地形数据 大小:9.26GB 来自ASTER v3的新疆30米地形数据 30米地形数据下载 新疆12.5米地形数据 12.5米DEM数据由于精度比较高,一般不会用到全省的数据,通常用的是一个地区的,因此,可以单独分

LocaSpace的博客 3495

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

语法 for (语句1; 语句2; 语句3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行(这就是循环中的++i和i++结果一样的原因,但是性能不一样,稍后解释) 语句1 (同上面语法中的 语句1) 语句1 是可选的,也就是说不使用语句1 也可以。 var i...

weixin_30377461的博客 515

android 运动目标检测_MindSpore应用案例:AI对篮球运动员目标的检测

MindSpore作为一个端边云协同的开源的全场景AI框架,今年3月份开源以来,受到了业界的广泛关注和应用,欢迎大家参与开源贡献、模型众智合作、行业创新与应用、学术合作等,贡献您在云侧、端侧 (HiMindSpore 应用程序)、边侧以及安全领域的应用案例。MindSpore与您在AI领域共同成长,让AI使能千行百业,释放出强大的生产力。本文讲述的是MindSpore对篮球运动员目标的检测应用,通...

weixin_33603813的博客 832

Java中for循环的i++和++i区别

我们应该都知道i++和++i的区别是: ++i是先执行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i = i + 1; for循环的执行顺序如下: for(a;b;c){   d; } 进入循环执行a;只是进入的时候执行 执行b; //条件为真才执行d,不然跳出for了 执行d; 执行c; 再回到第2步开始执行 来看下面的实例: for(int i = 0; i < 10;i++){   System.out.println(i); } 相当于: for(int i

qq_37904407的博客 2401

MST-GAT: Enhancing Anomaly Detection in Multimodal Time Series with Intra- and Inter-Modal Attention

本文深入解析了MST-GAT模型,这是一种通过模态内与模态间注意力机制增强多模态时间序列异常检测的新方法。它通过构建图结构显式建模传感器间的复杂时空依赖,并结合时间卷积网络与联合优化策略,有效降低了传统方法中常见的误报与漏报问题,在工业监控等场景中展现出卓越性能。

weixin_29079671的博客 150

Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明

Utrust4701F与Utrust2700R读写器支持银河麒麟系统,广泛应用会员管理、支付管理等领域。本文将重点介绍Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明。以上方法适用于主流国产操作系统,如 优麒麟(UbuntuKylin)/ 中标麒麟(NeoKylin) / UOS(统信操作系统)/ 中兴新支点 / 红旗 linux(redflag linux)/ 普华 Linux(I-soft OS) / 威科乐恩 Linux(WiOS)等

华翔天诚科技 1833

面试官又整新活,居然问我for循环用i++和++i哪个效率高?

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 前几天,一个小伙伴告诉我,他在面试的时候被面试官问了这么一个问题: 在for循环中,到底应该用 i++ 还是 ++i ? 听到这,我感觉这面试官确实有点不按套路出牌了,放着好好的八股文不问,净整些幺蛾子的东西。在临走的时候,小伙伴问面试官这道题的答案是什么,面试官没有明确告诉答案,只是说让从程序执行的效率角度自己思考一下。 好吧,既然这个问题被抛了出来,那我们就见招拆招,也给以后面试的小伙伴们排一下坑。 思路 前面提到,这个搞事情的面试官说要从.

1189

PCIe(Peripheral Component Interconnect Express)的带宽和速率

PCIe带宽与速率解析 PCIe的速率指物理层传输速度(GT/s),而带宽是实际有效数据吞吐量(GB/s)。不同PCIe版本采用不同编码方式: PCIe 1.0-2.0:8b/10b编码(80%效率) PCIe 3.0+:128b/130b编码(≈98.5%效率) 单向峰值带宽速查(单位:GB/s): 版本 x1 x4 x8 x16 PCIe3 0.98 3.94 7.88 15.75 PCIe4 1.97 7.88 15.75 31.51 PCIe5 3.94 15.75 31.51 63.02 PCIe

MHD0815的博客 347

For循环中的++i与i++的区别

前言: 在刷LeetCode中参考最佳解法时观察到官方在for循环中会经常用到++i,而不是我们从一开始接触java就建立的用i++的习惯,当我第一次看见前者这种用法时,会对自己产生怀疑,难道他们的用法真的有区别吗?但经过我查阅资料,其实两种并没有直接的区别,唯一的区别就是代码运行的效率问题。 区别: for循环中i++:java中i++是先返回i的值后再自增i,所以在每次for循环时都会花费额外的内存和时间去开辟新的临时变量空间来转存,故其效率会更低。 for循环中++i:java中++i是直接将

Erickkkkkk的博客 1万+

蓝鸟四轴飞控系统C程序V3.0(基础版本)深度解读

2. 解析遥控通道数据(油门 / 横滚 / 俯仰 / 偏航),转换为标准化值(-1000~+1000);3. 封装PID初始化(PID_Init,配置KP/KI/KD、输出限幅、积分限幅);,包含姿态角(Attitude_Data.Roll/Pitch/Yaw)、角速度(Gyro_Data.X/Y/Z)、遥控值(RC_Data[0~5])、电池电压(Bat_Volt)、电机PWM值(Motor_PWM[0~3])、系统状态(Sys_State),校验和通过Check_Sum()函数计算;

搏博的专栏 343

C#使用OpenCvSharp+微信模型识别多个二维码

本文介绍了一个基于OpenCvSharp和微信开源二维码检测器的多二维码识别项目。该项目通过C# WinForm实现,主要功能包括:加载图片、识别图片中的多个二维码并显示识别结果。核心代码使用了OpenCvSharp.WeChatQRCode类,通过预训练的caffe模型(detect.prototxt/detect.caffemodel和sr.prototxt/sr.caffemodel)进行二维码检测和解码。识别结果包括每个二维码的编号、内容及位置信息。项目适用于批量二维码识别场景,部署简单,识别效果良

遇见--专栏 123

java中 ++i 和 i++ 的区别,在for循环中又有什么不同

java中 ++i 和 i++ 的区别,在for循环中又有什么不同 普通运算中 i++ :先赋值 后进行+1 ++i :先进行+1 后赋值 ------------------------ int i = 0; i = i++; System.out.println(i);//结果为0 ------------------------ int i = 0; i = ++1; System.out.println(i);//结果为1 ------------------------

GQ的博客 1377

9.6华为OD机试真题 新系统【仓储货物有序出库】

华为OD机试真题 新系统【仓储货物有序出库】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【仓储货物有序出库】多语言题解。

qq_45776114的博客 875

JAVA for循环执行顺序 及 i++和++i的区别

在执行打印的结果上并没有不同,至于看到有说两者的效率有差异:http://topic.youkuaiyun.com/t/20050905/20/4251188.html,还要再去研究一下。1.i与i++的区别是: ++i 是先执行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i=i+1。原文链接:https://blog.youkuaiyun.com/lee_yaob/article/details/7731185。//条件为真才执行sta4,不然就跳出for了.//只是进入的时候执行.

男神的专栏 663

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java的for循环中i++与++i的区别

文章转载自https://blog.youkuaiyun.com/github_37847975/article/details/77369851 平时在使用for循环时,都是这样写的:for(int i=0; i&lt;10; i++),用的 i++。然而今天看算法的时候,发现有的for循环是这样的:for(int i=0; i&lt;10; ++i),用的 ++i。 刚刚看到的时候就在想在for循环中 i...

qq_39863593的博客 547

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

关于Java中for循环的i++和++i区别

我们应该都知道i++和++i的区别是: ++i是先执行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i = i + 1; for循环的执行顺序如下: for(a;b;c) {   d; } 进入循环执行a;//只是进入的时候执行 执行b; //条件为真才执行d,不然跳出for了 执行d; 执行c; 再回到第2步开始执行 来看下面的实例: fo...

weixin_30485291的博客 999

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java for 循环中++i和i++的区别

语法 for (语句1; 语句2; 语句3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行(这就是循环中的++i和i++结果一样的原因,但是性能不一样,稍后解释) 语句1 (同上面语法中的 语句1) 语句1 是可选的,也就是说不使用语句1 也可以。 var i=2,len=5; for (; i&l......

梁同学与Android 1609

for循环里面的累加条件i++和++i的区别(java语言)

++i与i++的区别是: ++i 是先执行 i=i+1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i=i+1(即++i是先加后用 i++是先用后加) 在这样的循环体for (int i=0; i&lt;10; i++){}和for (int i=0; i&lt;10; ++i){},++i和i++的作用是一样的,但是++i比i++耗时更少,因为在Java中 i++语句是需要一个临...

小喵的博客 5176

java for i i 区别,i ++&和i ++之间的区别是什么? ++我在for循环(Java)?

hello, I've just started learning Java and now I'm into for loop statement. I don't understand how ++i i++ works in a for loop statement.I mean how they work in mathematics operations like addition a...

weixin_33304613的博客 181

java中for循环内i++和++i的区别

答案:没有任何区别。 两段代码如下: public class test { public static void main(String[] args) { for(int i=0;i<3;i++){ System.out.println(i); } } } public class test { public static void main(String[] args) { for(int

baiyangjiaqing的博客 262

java for循环i_[Java教程]js for循环中i++ 和 ++i有什么区别?

[Java教程]js for循环中i++ 和 ++i有什么区别?0 2016-07-20 17:00:04平时都是这样写的for循环,for(var i = 0; i < 20 ; i++){ .... }但我看有的人这样写for (var i = 0; i < 20 ; ++i) { ....}这样会对for循环有什么影响?1.在for里好像没啥区别...但...

weixin_39574720的博客 132

for循环的 i++ 和 ++i 的区别

基本所有语言都有for循环,每个语言的写法大致都相同。下面来解释一下for循环里的i++和++i有什么区别!!! 前几天有看到相关的文章解释i++,和++i,其实就在for循环里,是没什么区别的,但是在其他场景,相信大家都知道,他们的区别。 var i = 0; var a = i++;//这里i变成多少了? 而a又是多少呢? /* 结果大家都知道 a = 0; i = 1 ; */ var i...

伍六七的博客 1万+
上一篇: Kotlin学习系列----Android Studio配置Kotlin
下一篇: Kotlin学习系列----定义变量及基本属性
皮小智
博客等级 码龄10年 56粉丝 34原创
评论 69
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值