java中i++ 与 i=i++的区别
来源:互联网 发布:制造业大数据 编辑:程序博客网 时间:2024/04/30 05:28
记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++与++i,i++表示的是先赋值后加1,++i是先加1后赋值。我们来看下下面的例子:
public class Client { public static void main(String[] args) { int count =0; for(int i=0; i<9; i++) { count = count++; } System.out.println(count); }}
这个程序输出的count等于几?是count自加10次吗?答案等于10?可以非常肯定地告诉你,答案错误!运行结果是count等于0.为什么呢?
count++是一个表达式,是有返回值的,它的返回值就是count自增前的值,java对于自增是这样处理的:先把count的值(注意是值,不是引用)拷贝到一个临时变量区,然后对count变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下:
步骤1:JVM把count的值拷贝到临时变量区
步骤2:count值加1,这时候count的值是1
步骤3:返回临时变量区的值,0
步骤4:返回值赋值给count,此时count值被重置成0.
解决方法很简单,只需把“count = count++”改成count++.
0 0
- java中i++ 与 i=i++的区别
- java中i++与++i的区别
- java中i++与++i的区别
- java中i++与++i的区别
- java中 i++ 与 ++i 的区别
- Java中 i++与++i的区别
- JAVA i++ i-- 与 ++i --i的区别
- Java中i++与++i区别
- java中i++与++i区别
- java中i++与++i的区别(转)
- java里面for循环中i++与++i的区别
- js中i++与++i的区别
- js中i++与++i的区别
- java 基础 i++与++i的区别
- Java中i++,++i 和i= i+ 1的区别
- Java中i++ 和 ++i的区别
- java中i++和++i的区别
- Java中i++和++i的区别
- Android studio快捷键
- Android开发入门——推箱子游戏开发实战(十四)
- Android RecyclerView 使用完全解析 体验艺术般的控件
- 内存泄漏检测工具VLD在VS2010中的使用举例
- 初识Java——HelloWorld
- java中i++ 与 i=i++的区别
- 降低Java垃圾回收开销的5条建议
- 算法导论学习笔记(四) 初稿
- windows系统注册dll文件
- iOS常用加密
- 66.[PCL]PCD文件格式
- java生成二维码
- EmitMapper 和TinyMapper 两者简单对比(若转载请注明)
- KnockOutJS入门