黑马程序员技术交流社区
标题:
关于今天上java基础课说到的一道题,大家都来讨论讨论.
[打印本页]
作者:
rabbitguy
时间:
2016-4-17 00:50
标题:
关于今天上java基础课说到的一道题,大家都来讨论讨论.
int a=8;
a = a++;
大家打印结果试试,保证想不到.
不过很难解释,哪位大神能来给个好的解释?
作者:
女神之泪
时间:
2016-4-17 07:22
直接a++,不要等号了。 这样先赋值了是吧,然后又给加一,那到底输出8还是9不能判断,是吧
作者:
杨伟乔
时间:
2016-4-17 10:23
要考虑到++参与运算时候使用,别想着赋值
作者:
邹凯
时间:
2016-4-17 15:14
a++ 是啊先参加程序的运行在 赋值的所以你这里a值没变 而++a 是先自加 在赋值的
作者:
rabbitguy
时间:
2016-4-18 22:40
有兴趣参与的不妨试试,结果估计会让你们惊奇.
作者:
逆击穹霄
时间:
2016-4-18 23:26
这个好解释啊 先是把A付给A 然后自加 但是自加后并没有再进行附值
作者:
Yoyoqiu
时间:
2016-4-18 23:34
经典面试题 建议百度一下 与java的 JVM底层 有关 前面有 i= i++;的帖子 楼主可以看看
作者:
keyingchang0909
时间:
2016-4-18 23:42
这道题跟底层操作有关系,要点在于执行的时候是从右向左执行的.
作者:
liudh1
时间:
2016-4-18 23:57
++在后面,先复制在参与运算:所以a=8
作者:
张宪达
时间:
2016-4-19 00:25
a=8,不对吗?
作者:
lidandan
时间:
2016-4-19 15:03
a=8
作者:
lin6773084
时间:
2016-4-19 16:38
a = 8 赋值后再自增
作者:
a382541804
时间:
2016-4-19 16:57
我就想知道a=8对不对
作者:
rabbitguy
时间:
2016-4-22 01:23
执行结果是a=8,大家都试过了吧,
作者:
xzy645181797
时间:
2016-4-22 07:42
我想楼主提出的这个观点就是在于一种思维的问题。在编程时 特别像我们初学者 还没有把平时生活中的思维转换到编程的思维方式 这里的 a=a++ 用平时生活中的思维 我们会把它看成 a = (a++) 但真正编程的思维 应该是 把赋值好 右边的a 赋值给 赋值号 左边的 a 这个动作做完之后 a再 ++ 所以打印结果是 ++ 之前的结果 也就是 a = a
这让我想到了很久以前看到的一个笑话
话说妻子让程序员老公去买苹果 原话是这样:“老公,待会你出去买两斤苹果回来吧,要是碰见卖西瓜的,买一个。” 于是程序员老公就出去了。过了一会老公拿着一个苹果回来了。妻子他问什么只买了一个苹果,老公说因为碰见卖西瓜的了。
作者:
小红花
时间:
2016-4-22 10:11
先运行,在自增
作者:
huaihkiss
时间:
2016-4-22 11:50
是8是吧 后自加显示完再赋值给x的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2