A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁晓宇 中级黑马   /  2012-2-19 03:44  /  2315 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丁晓宇 于 2012-2-19 04:00 编辑
  1.                 int j = 0;
  2.                 for (int i = 0; i < 100; i++) {
  3.                         j = j++;
  4.                 }
  5.                 System.out.println(j);
复制代码
请不要copy运行,写下答案后顺带写出理由、思路


暂设置回帖内容private、稍后会public

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1 我记得这题发了好几遍了啊

查看全部评分

14 个回复

正序浏览
j++是先运行后执行的,所以每次其实都是对J赋0操作

点评

j=j++; 解析后类似以下代码 int temp = j; j=j+1; j=temp;  发表于 2012-2-20 19:10
回复 使用道具 举报
本帖最后由 张红 于 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的区别;累加与赋值的关系

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
王康 黑马帝 2012-2-19 14:08:52
13#
如果是把j=j++; 改为 ++j;
则结果因该是楼主想要的100;

j++是先让j的值参与运算后再+1,这就好办了,
j=j++相当于先把j++中j的值拿出来赋值给等号左边的j运算,右边j的值是0,所以相当把0赋给了j,j的值不变,为0。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
这题出得好
回复 使用道具 举报
结果是0,因为j++运算是先使用j的值,然后再加1,每次循环j都是把上一次的0赋给j,所以循环结束后j的值仍然是0.
回复 使用道具 举报
每次都是0
回复 使用道具 举报
彭坤 中级黑马 2012-2-19 10:01:46
9#
好吧,我承认我运行了楼主代码,首先说一下结果吧:0
看到结果的时候确实也有点意外,相信楼上很多人都跟我有同样的反应
琢磨了一下,心中豁然开朗:
j++是先让j的值参与运算后再+1,这就好办了,
j=j++相当于先把j++中j的值拿出来赋值给等号左边的j运算,右边j的值是0,所以相当把0赋给了j,j的值不变,为0。
余下每次循环,j读到的值都是0,所以无论循环多少次,最后打印的值都为0


评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
邱纲 中级黑马 2012-2-19 09:54:58
8#
不管运行多少次,还是0,哪怕是int j = 1;其结果不管运行了多少次还是j = 1,其值不会改变。因为j = j++; j=1,所以不管for循环运行了多少次,j的值是不会改变的。

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
马欢 黑马帝 2012-2-19 09:28:09
7#
j输出还是0,因为你输出的是初始时的j和循环里的没关系啊。
回复 使用道具 举报

回帖奖励 +5

还是0~~~如果将j=j++换成j++就能累加了
回复 使用道具 举报
这道题关键 是 for 循环里面的 j = j++   ,先把 循环去掉 再解题,因为初值值 j=0; j=j++ 表达式也等于0, 不管循环多少次,j 的值都不会改变

回复 使用道具 举报
本帖最后由 何招俊 于 2012-2-19 09:15 编辑

J的值打印出来还是0
回复 使用道具 举报
还是0~~~~~~~~~~
回复 使用道具 举报
本帖最后由 丁晓宇 于 2012-2-19 03:59 编辑

{:soso_e147:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马