首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java圈套解惑

2013-07-08 
Java陷阱解惑* 不断完善中?1、自增陷阱陷阱:自增有两种形式:i++和++i,前者是先赋值后加1,后者则相反。那么下

Java陷阱解惑

* 不断完善中

?

1、自增陷阱

陷阱:

自增有两种形式:i++和++i,前者是先赋值后加1,后者则相反。那么下述程序的运行结果count等于几?

@Testpublic void test自增陷阱() {int expected = 10;int count = 0;for (int i = 0; i < expected; i++) {count = count++;}System.out.println(count);Assert.assertTrue(expected != count);}

结果count=0,不等于预期的10。

?

解惑:

count++是一个表达式,是有返回值的,它的返回值就是count自加前的值,Java对自加是这样处理的:首先把count的值拷贝到一个临时变量区,然后对count变量加1,最后返回临时变量区的值。

该问题在不同的语言环境有不同的实现,如在C++中"count=count++"与"count++"是等效的,而在PHP中则保持着与Java相同的处理方式。

?

?

热点排行