i = 3;
i = i++;
system.out.print(i);输出
i= 3;为什么?说明详细的内部原理.
i = i++;
system.out.print(i);输出
i= 3;为什么?说明详细的内部原理.
解决方案 »
- 哪位大侠能给出用java做一个音乐播放器的具体方法啊?
- 关于Java的异常,为什么每次运行的结果都不一样,奇怪!!
- 无法创建下列URL的连接:jdbc:microsoft:sqlserver://localhost:40000;DatabaseName=bbs
- 初学者的提问
- 请推荐一款全文搜索工具吧
- 为什么有的applet的class和html文件拷到别的目录下,就不能运行该applet?
- 启动JSDK服务器后,我如何让别人通过局域网访问我的HTML文件,
- 想用java做个类似于foxmail的应用软件,请大家谈谈看法
- 怎样对记事本中的java程序进行编译和执行?
- Java的空指针异常又出现了
- 好几天都没头绪,查询按钮在jtable显示问题???
- 设计一款简易的白盒测试软件
这里是i=i++,是 i参与运算之后再加1,所以结果就是3咯
int temp=i;
i++;
i=temp;
2: iload_1
3: iinc 1, 1
6: istore_1
第一行加载值,第二行执行自增,第三行将行一加载的值赋值给变量
情况一:你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。 例如:
i=5;++i和i++ 这两个动作完成后i自身的值都变成6。
情况二: 对于他赋值给的那个变量就不一样了。 例如:
i=5; a = ++i,这句执行完后a = 6,当然i=6;
a = i++,这句执行完后a = 5,i=6;
对于你的例子而言,相当于情况二。理解的话对于i = i++你可以理解先赋值再++,所以你例子中system.out.print(i);输出的i相当于情况二中的a.