Java for 循环中++i和i++的区别
语法
for (语句1; 语句2; 语句3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行(这就是循环中的++i和i++结果一样的原因,但是性能不一样,稍后解释)
语句1 (同上面语法中的 语句1)
语句1 是可选的,也就是说不使用语句1 也可以。
var i=2,len=5;
for (; i<len; i++){
document.write(cars[i] + “
”);
}
也可以在语句1 中初始化任意(或者多个)值:
var arr = [1,2,3]
for (var i=0,len=arr.length; i<len; i++){
document.write(cars[i] + “
”);
}
语句2 (同上)
通常语句 2 用于评估初始变量的条件。
语句 2 同样是可选的。
如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。
如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃
语句3 (同上)
通常语句 3 会增加初始变量的值。
语句 3 也是可选的。
语句 3 有多种用法。增量可以是负数 (i–),或者更大 (i=i+15)。
语句 3 也可以省略(比如当循环内部有相应的代码时):
var i=0,len=arr.length;
for (; i<len; ){
document.write(cars[i] + “
”);
i++;
}
++i 和 i++ 的区别
var i = 10;
console.log(i++); //10 ,先引用原值,然后加1
等价于:
var i= 10;
console.log(i); //先输出i
i++; //然后加1
var i = 10;
console.log(++i); //11 , 这次是先加1,然后输出
总结下:++在前下自加后运算;++在后先运算后自加
for循环中++i 和 i++ 的区别
根据上面的for循环的语法定义 ++i 和 i++的结果是一样的,都要等代码块执行完毕才能执行语句3,但是性能是不同的。在大量数据的时候++i的性能要比i++的性能好原因:
i++由于是在使用当前值之后再+1,所以需要一个临时的变量来转存。
而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能
Java for 循环中++i和i++的区别相关推荐
- 在循环之前或循环中声明变量之间的区别?
本文翻译自:Difference between declaring variables before or in loop? I have always wondered if, in genera ...
- 【Java】泛型中 extends 和 super 的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- for循环中++i和i++的区别
语法 for (语句1; 语句2; 语句3){被执行的代码块} 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行(这就是循环中的 ...
- 【java】深入理解Java JVM虚拟机中init和clinit的区别
1.概述 转载并且补充:深入理解Java JVM虚拟机中init和clinit的区别 原创 之所以来转载一下,是因为,有个学弟问了这个问题 这个知识点,回顾起来应该是我看 深入理解Java JVM虚拟 ...
- 20200927:Java和Cpp中栈与队列的区别
Java和Cpp中栈与队列的区别 题目 思路与算法 代码实现 对比分析两种语言中栈和队列的区别 题目 1.225. 用队列实现栈 2.232. 用栈实现队列 3.155. 最小栈 思路与算法 三道简单 ...
- for循环中++i 和 i++ 的区别
for循环中++i 和 i++ 的区别 for (语句1; 语句2; 语句3) {被执行的代码块 } 根据for循环的语法定义 ++i 和 i++的结果是一样的,都要等代码块执行完毕才能执行语句3,但 ...
- java list循环中删除元素的坑
背景 当我们要循环一个list中的元素,并且要删除某个元素的时候,一点要小心谨慎!其中深埋了好几个坑! 坑1 请看如下代码: /*** 测试删除集合中的空白元素*/ @Test public void ...
- 三分钟教会你Java while循环中嵌套if
##[java的三种循环结构与循环嵌套] 循环结构: 语法,及执行顺序 语法: while(boolean类型){//功能语句} 执行顺序: 1[断小括号中的值是否为true,如果为true,执行功能 ...
- java中swing循环_在Java游戏循环中使用“ SwingUtilities.invokeLa...
因此,我正在用JAVA创建一个等距游戏:简而言之,它有一个由图块组成的地图,当用户在屏幕上拖动鼠标时,地图就会移动.为了给大家一个主意,目前看起来像这样: 在实际的原型版本之前,我构建了一个小的Jav ...
最新文章
- 人工智能项目开发规划与准备
- LNMP一键安装脚本(第二版)
- Spring+ActiveMQ+Mysql 配置JMS
- Reuse library debug in Chrome - phase2 handle success response (2)
- SAP S/4HANA里的生产订单,标识其已经结束生产可以发货的字段
- 监控linux时间不对,shell 计算故障时间 配合web监控
- 华为gsm模块_出货量全球第一,华为阿里腾讯都是其客户,上海移远通信牛在哪?...
- nginx设置跨域问题
- “庆渝年”​又更新了!法院裁定:禁止李国庆接触、骚扰、殴打俞渝
- 配置SQL Server 2008 R2 Reporting Services
- 数字孪生智慧园区能源管理系统
- 多所985、211高校教授被通报!国自然发布处理决定!
- MATLAB线型英文名字
- 计算机中¥符号按哪个键,人民币键盘符号怎么打 电脑怎么打人民币符号
- Si5395/94/92时钟芯片配置步骤
- 线性方程组求解——基于MTALAB/Octave,Numpy,Sympy和Maxima
- 什么是二极管钳位电路
- 通过实时语音驱动人像模拟真人说话
- Linux系统时区时间修改
- comsol官方案例学习——轴对称瞬态传热