黑马程序员技术交流社区
标题:
在不用运行的情况下,谁能说出下面这段代码的运行结果
[打印本页]
作者:
364785953
时间:
2015-3-20 19:38
标题:
在不用运行的情况下,谁能说出下面这段代码的运行结果
public class Test{
public static void main(String[] args){
int j = 0;
for(int i = 0; i < 10; i ++){
j = j++;
}
System.out.print(j);
}
}
作者:
tubao1991
时间:
2015-3-20 21:14
正常情况下不会用j=j++来达到j自增的效果,这样没有达到把j++的值赋值给j 答案:0
作者:
我是main
时间:
2015-3-20 22:28
这是8吧
作者:
一抹浓茶
时间:
2015-3-20 22:35
答案是0吧,j++值会变,但是j++赋给j,虽然++也会运算,但是赋值的时候赋的还是原来的j值,初始化j为0,不管循环多少次,结果还是0
作者:
绝望
时间:
2015-3-21 22:04
0,每次加完又改回去了
作者:
勇闯☀☀黑马
时间:
2015-3-21 22:22
答案是0
作者:
liyuehua
时间:
2015-3-21 22:30
public class Test{
public static void main(String[] args){
int j = 0;
for(int i = 0; i < 10; i ++){
j = ++j;
}
System.out.print(j);
}
}
改成这样后结果为10
作者:
夜班心桥
时间:
2015-3-21 22:45
一抹浓茶 发表于 2015-3-20 22:35
答案是0吧,j++值会变,但是j++赋给j,虽然++也会运算,但是赋值的时候赋的还是原来的j值,初始化j为0,不 ...
j=j++; 先把0赋值给了j,然后j++,j变成1。再继续这样下去,j一直增加啊,为什么结果还是0呢?求详细解释,谢谢!
作者:
One_M
时间:
2015-3-21 23:18
j=j++ 只是 J先把0给了j 然后自加1 这是J 记录的值还是0 ,把 “J=J++ ” 换成“ j+=1” 这样就OK 了 ~!!
作者:
卟離不棄
时间:
2015-3-21 23:36
顶了 慢慢看
作者:
Dark县令
时间:
2015-3-21 23:52
这个是0,毫无疑问当++后并未赋值给j
作者:
thoris
时间:
2015-3-22 00:00
先算= 再++
作者:
空洞的望着窗外
时间:
2015-3-22 10:41
0,循环也是一个代码块,当代码块执行完后,局部变量就会被回收了,j++的确做了自增的事,但是由于j=j++,是先赋值,再自增,塔自增的效果是空的,只自增并没有赋值成功就被回收器自动回收了,一直循环10次,所以还是这样的结果
作者:
空洞的望着窗外
时间:
2015-3-22 10:43
如果是j=++j,那么就是先自增后赋值,结果为10
作者:
邓士林
时间:
2015-3-22 11:46
结果就是0
作者:
你好我是潘机智
时间:
2015-3-22 12:23
结果是0 就算j++在赋值之后自增了 在给j赋值完成之后会回到i++的步骤,所以结果是0
作者:
傻大憨粗萌
时间:
2015-3-22 12:53
j=j++这个指令并没有给j赋值的功能i,毕老师视频讲过,现学现卖:lol
作者:
高双
时间:
2015-3-22 13:16
我觉得应该是8吧
作者:
无力去闹
时间:
2015-3-22 13:35
我也认为0是ok的
作者:
若辰
时间:
2015-3-22 13:43
一道题引发的血案,好多答案啊,哈哈。讨论共同进步啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2