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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有时候你无法理解别人对你问题的回答,请记住不要轻易放弃这个问题
就比如
public class add_and_add_understand {

public static void main(String[] args) {
//好像理解了
//我解释一下别人的意思:
int i=1;
i=i++;      // (加一个中间变量去理解)  >>>>>   int temp = i ++  >>>temp = 1 and i =2>>>>> i = temp >>> i =1
i=i++;        // >>>>>   int temp = i ++  >>>temp = 1 and i =2>>>>> i = temp >>> i =1
System.out.println(i);
/*
}
懂了???
我懂了代码,但是不懂为什么要这样:++在前是先自增再赋值,++在后是先赋值再自增
这样挺容易误解的,慎重理解!!!

我感觉这个问题还是请老师专门讲解一下,毕竟很多做法都是猜测,只是有很多人的猜测符合答案而已,求群主召唤老师来权威解释一下这个问题
大家多顶顶这个问题!!!!好让老师看见这个问题

实际上我这仅仅是一种猜想,应该说是一种合理的猜想,因为答案是对的,我们也常常遇到这些问题,别人给你为什么,仅仅是他个人的理解而已
如果你还是不确定,请加上一句话:我的个人理解。这是对你负责,也是对提问者的一种负责
当然最好是请教有经验的人或者是有权威的人——也不见得他们说的就比你说的对(相对而言)
如果你还是不确定,或者很疑惑,记住请问老师,或者更有见识或经验的人,也许他能给你一个更好的答案,谢谢!!!

评分

参与人数 1技术分 +1 黑马币 +4 收起 理由
袁梦希 + 1 + 4 建议很好

查看全部评分

11 个回复

倒序浏览
本帖最后由 袁梦希 于 2013-5-25 21:26 编辑

嘿嘿  好吧  我承认这话是说给我听的{:soso_e113:}   没事   团长不怪你,你批评的没错,有时候我是该加上“我个人的理解”的字样,不过如果究其i++的内部原理,不是谁都能理解的,如果是哪个专业的老师过来解答,他也需要考虑一会儿的,如果你请两个老师来答这题,他们两个解释的肯定还是不一样的,其实问题往往都是个人理解,不光是多态也好继承也好,都应该找个自己能理解的程度,只要自己知道是对的,并且能掌握就足够了。{:soso_e100:}
回复 使用道具 举报
袁梦希 发表于 2013-5-25 21:24
嘿嘿  好吧  我承认这话是说给我听的   没事   团长不怪你,你批评的没错,有时候我是该加上 ...

不是说你,我也没有任何恶意,如果照成了误会,我向你道个歉
我说的是很多人的理解,有的甚至说到 i 加到了3,有的人根本就不晓得为什么,却那么肯定的回复
这个是我很不满意的,懂???

如果这个建议对某些人照成了影响,我向在此道个歉,不好意思
回复 使用道具 举报
Changer_s 发表于 2013-5-25 21:28
不是说你,我也没有任何恶意,如果照成了误会,我向你道个歉
我说的是很多人的理解,有的甚至说到 i 加到 ...

没事,兄弟,你也不用道歉,其实每个人都有一个自己的理解方式,只要你有自己的理解,你不用去管别人怎么理解。只要你用自己的理解答题,只要是自己的想法并且认真答题了,那么就可以了。如果别人的理解,你听不懂,没关系。因为你不知道其他人的理解是错的还是对的,只要你认为你自己的理解是对的就可以了。
回复 使用道具 举报
袁梦希 发表于 2013-5-25 21:32
没事,兄弟,你也不用道歉,其实每个人都有一个自己的理解方式,只要你有自己的理解,你不用去管别人怎么 ...

强大的内心啊
回复 使用道具 举报
袁梦希 发表于 2013-5-25 21:32
没事,兄弟,你也不用道歉,其实每个人都有一个自己的理解方式,只要你有自己的理解,你不用去管别人怎么 ...

发短消息,现在等级还不够!!!我很喜欢你的为人。如果不方便透漏,我把我发出来:529815144,那学长就加一下我吧,以后有些问题思想可以讨论请教哈子
回复 使用道具 举报
神之梦 发表于 2013-5-25 21:34
强大的内心啊

看来比我们大一点,经历也多一点,心静也不一样!!!学习了,呵呵
回复 使用道具 举报
你是想说:
++在前是先自增再赋值,++在后是先赋值再自增
这样挺容易误解的,慎重理解!!!
这样理解有问题还是什么。。。
有歧义啊。。。
其实你用中间变量去理解非常正确。。。
i的结果就是1;

回复 使用道具 举报
Miss小强 发表于 2013-5-26 16:34
你是想说:
++在前是先自增再赋值,++在后是先赋值再自增
这样挺容易误解的,慎重理解!!!

刚看到了以前发的帖子:就回复一下
如果都重复赋值的话,也就是:
i=i++; >>>(而不是简单的a=i++的问题,就得留意一下,毕竟这个用特殊办法去处理,才算是明白过来)
system.out.println(i);
就不能:直接套用先赋值,再自增,不然就出问题了,好多人多会以为是2
我以前也是以为是2的。
现在就不是这样理解了,我很感谢那个提问的同学,虽然这个问题很简单,但是不拆分去理解,还真有点。。。
回复 使用道具 举报
Changer_s 发表于 2013-5-28 14:12
刚看到了以前发的帖子:就回复一下
如果都重复赋值的话,也就是:
i=i++; >>>(而不是简单的a=i++的问题, ...

理解了就好。。。
回复 使用道具 举报
其实这个i=i++;在C语言里面如果经历了这条语句在打印i的话,确实是i=2了,不同语言的运行机制不一样的
回复 使用道具 举报
HM张博文 发表于 2013-5-28 23:35
其实这个i=i++;在C语言里面如果经历了这条语句在打印i的话,确实是i=2了,不同语言的运行机制不一样的 ...

真的?呵呵
看来有时候一个小问题可会纠结一下人很长时间的
如果懂得运行原理,我想会比记结论更好吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马