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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 光头强   /  2014-10-9 20:55  /  2721 人查看  /  35 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

高泳 中级黑马 2014-10-10 13:29:43
21#
上面讲的很清楚
回复 使用道具 举报

  1. //public class test3 {
  2. //    public static void main(String[] args) {
  3. //
  4. //            int j=0;
  5. //        for (int i = 0; i<100; i++){
  6. //   
  7. //                j=j++;   //每次++但又返回给了j
  8. //           
  9. //        }
  10. //        System.out.println(j);  
  11. //    }
  12. //}

  13. public class test3 {
  14.     public static void main(String[] args) {

  15.             int j=0;
  16.         for (int i = 0; i<100; i++){
  17.    
  18.                 j++;         //这个才是自增
  19.            
  20.         }
  21.         System.out.println(j);  
  22.     }
  23. }
复制代码
回复 使用道具 举报
j++和++j的区别:j++先赋值再进行自增,而++j先自增再赋值
回复 使用道具 举报
踏云 发表于 2014-10-9 21:12
楼主的问题涉及++的运行机制。j++的过程,首先是将j的值传给temp,然后j=j+1;然后再返回temp给调用者。
所 ...

明白了,受教啦
回复 使用道具 举报
懒羊羊 发表于 2014-10-10 12:48
J++是先赋值后自增哦

额,这个说法是错误的,毕老师在讲解运算符时重点说了
回复 使用道具 举报
楼主看一下毕老师关于运算符的视频吧,里面有这个的内存图解
回复 使用道具 举报
其实很简单 只要楼主弄清楚 j++和++j就会明白的! 添加上循环就是糊弄人的 !你可以直接 看成 int j=0
回复 使用道具 举报
getone 中级黑马 2014-10-10 20:09:58
28#
其实就是i++和++i的问题,先自增和后自增的区别
回复 使用道具 举报
也就是这么个原理
j = j++;  是先将右边的j赋值给左边的j,然后再++

j = ++j; 是右边先++,然后再赋值给左边。

至于为什么是,那是因为每次都先将0赋值给左边的j,而j又是在for循环内部,每次都从0开始循环,自然就是0.貌似是这么个原理吧
回复 使用道具 举报
踏云 中级黑马 2014-10-10 21:28:37
30#
本帖最后由 踏云 于 2014-10-10 21:36 编辑
mingtianrsm 发表于 2014-10-10 19:59
额,这个说法是错误的,毕老师在讲解运算符时重点说了
好吧,看错了,sorry
回复 使用道具 举报
水竹 中级黑马 2014-10-10 21:33:11
31#
踏云 发表于 2014-10-10 21:28
本来,我一般都不刁人,可是,你说我的答案是错的,还动不动就把毕老师搬出来。
在毕老师自增运算的视屏的 ...

??
他回复的不是你啊??
回复 使用道具 举报
韶山 高级黑马 2014-10-10 21:35:33
32#
学习了。
回复 使用道具 举报
mudao 中级黑马 2014-10-10 21:42:21
33#
一楼解释的精辟,其实这个题与循环没有什么关系,就是j++的运算原理最好的体现。
回复 使用道具 举报
又学到了一点~
回复 使用道具 举报
学习了,看了2楼,才知道J++是这么运算的
回复 使用道具 举报
踏云 发表于 2014-10-9 21:12
楼主的问题涉及++的运行机制。j++的过程,首先是将j的值传给temp,然后j=j+1;然后再返回temp给调用者。
所 ...

这位同学理解的很透切,发自心底的佩服
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马