黑马程序员技术交流社区
标题:
问:j的值打印出来是多少
[打印本页]
作者:
丁晓宇
时间:
2012-2-19 03:44
标题:
问:j的值打印出来是多少
本帖最后由 丁晓宇 于 2012-2-19 04:00 编辑
int j = 0;
for (int i = 0; i < 100; i++) {
j = j++;
}
System.out.println(j);
复制代码
请不要copy运行,写下答案后顺带写出理由、思路
暂设置回帖内容private、稍后会public
作者:
丁晓宇
时间:
2012-2-19 03:47
本帖最后由 丁晓宇 于 2012-2-19 03:59 编辑
{:soso_e147:}
作者:
万正
时间:
2012-2-19 08:21
还是0~~~~~~~~~~
作者:
何招俊
时间:
2012-2-19 09:07
本帖最后由 何招俊 于 2012-2-19 09:15 编辑
J的值打印出来还是0
作者:
陈建凡
时间:
2012-2-19 09:22
这道题关键 是 for 循环里面的 j = j++ ,先把 循环去掉 再解题,因为初值值 j=0; j=j++ 表达式也等于0, 不管循环多少次,j 的值都不会改变
作者:
H07000223
时间:
2012-2-19 09:26
还是0~~~如果将j=j++换成j++就能累加了
作者:
马欢
时间:
2012-2-19 09:28
j输出还是0,因为你输出的是初始时的j和循环里的没关系啊。
作者:
邱纲
时间:
2012-2-19 09:54
不管运行多少次,还是0,哪怕是int j = 1;其结果不管运行了多少次还是j = 1,其值不会改变。因为j = j++; j=1,所以不管for循环运行了多少次,j的值是不会改变的。
作者:
彭坤
时间:
2012-2-19 10:01
好吧,我承认我运行了楼主代码,首先说一下结果吧:0
看到结果的时候确实也有点意外,相信楼上很多人都跟我有同样的反应
琢磨了一下,心中豁然开朗:
j++是先让j的值参与运算后再+1,这就好办了,
j=j++相当于先把j++中j的值拿出来赋值给等号左边的j运算,右边j的值是0,所以相当把0赋给了j,j的值不变,为0。
余下每次循环,j读到的值都是0,所以无论循环多少次,最后打印的值都为0
作者:
花开~的季节
时间:
2012-2-19 11:12
每次都是0
作者:
陈伟
时间:
2012-2-19 11:20
结果是0,因为j++运算是先使用j的值,然后再加1,每次循环j都是把上一次的0赋给j,所以循环结束后j的值仍然是0.
作者:
彭小芳
时间:
2012-2-19 11:24
这题出得好
作者:
王康
时间:
2012-2-19 14:08
如果是把j=j++; 改为 ++j;
则结果因该是楼主想要的100;
j++是先让j的值参与运算后再+1,这就好办了,
j=j++相当于先把j++中j的值拿出来赋值给等号左边的j运算,右边j的值是0,所以相当把0赋给了j,j的值不变,为0。
作者:
张红
时间:
2012-2-19 21:02
本帖最后由 张红 于 2012-2-19 21:08 编辑
int j = 0;
for (int i = 0; i < 100; i++) {
j = ++j;
}
System.out.println(j);
int j = 0;
for (int i = 0; i < 100; i++) {
j++;
}
System.out.println(j);
答案对比即可知晓。j++与++j的区别;累加与赋值的关系
作者:
温昌寿
时间:
2012-2-20 00:16
j++是先运行后执行的,所以每次其实都是对J赋0操作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2