黑马程序员技术交流社区
标题:
java的编译器对于i = i++做了些什么?
[打印本页]
作者:
li3N
时间:
2015-11-11 20:54
标题:
java的编译器对于i = i++做了些什么?
下面的程序执行后count的结果是()
public class Exec39 {
public static void main(String[] args) {
int count = 0;
for(int i = 0; i < 10; i++) {
count = count++;
}
System.out.println(count);
}
}
复制代码
A、0 B、10 C、9 D、11
答案是A,自己第一次将这个代码跑一遍以后也没看懂,后来去网上找了些解释:
java的编译器对于i = i++,相当于temp = i ; i = i+1 ; i = temp,换句话说相当于什么事都没做。
而C语言的编译器对于i= i++的处理方式则不同,如果上述代码改成用C语言写,那么结果是10。
也就是说,在java里i++和i = i++不是一个概念,但在C语言里,这两者的作用一样。
作者:
隔壁马良
时间:
2015-11-11 22:35
刚发现这个问题,谢谢楼主
作者:
小笨笨天
时间:
2015-11-12 00:48
好像是什么一次运算 二次运算问题 学习中
作者:
z_one
时间:
2015-11-12 21:26
确实不一样 学习了
作者:
825952009
时间:
2015-11-12 22:46
上课刚学到
作者:
xiaoxiao147
时间:
2015-11-12 23:00
今天刚好学到...没看懂你这说的
作者:
零尘
时间:
2015-11-12 23:21
你可以试试 ++count .java在这里 处理机制确实和c不一样
作者:
jlq
时间:
2015-11-12 23:43
xueix学习一下
作者:
hbcoding
时间:
2015-11-13 09:56
一直以为自己已经搞懂了这个问题,今天才知道其实还差点儿
作者:
Phy_zhang
时间:
2015-11-13 17:39
当我捂住答案用C的方法思考的时候竟然发现我是完完全全错的,受教了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2