黑马程序员技术交流社区

标题: ++a直接输出为何与a++不同? [打印本页]

作者: 赵新培    时间: 2015-12-14 22:53
标题: ++a直接输出为何与a++不同?
如题,直接System.out.println(++a)与System.out.println(a++)

作者: MRguo    时间: 2015-12-14 23:14
给你举个例子:你去嫖娼,你嫖了没给钱就走,就是a++;你先给钱后嫖再走就是++a.
作者: songjianzaina    时间: 2015-12-14 23:19
答案请参阅该贴http://bbs.itheima.com/forum.php ... p;page=1#pid2029319
作者: 木易延    时间: 2015-12-14 23:40
(++a)打印出来的是(a+1)的值,而(a++)打印出来的是(a)的值
作者: 隔壁老猫    时间: 2015-12-14 23:49
一个是先++再输出, 一个是先输出再++
作者: 意念痴心灬戒贪    时间: 2015-12-14 23:53
输出结构结果是不一样的,输出结果后a的值+1
作者: 星晴。    时间: 2015-12-15 00:17
有些知识点没必要去纠结为什么,记住结果就好,就像1+1为什么等于2
作者: xingchen5645    时间: 2015-12-15 01:08
class Test1 {
        public static void main(String[] args) {
                int a = 3;
                System.out.println(a++);
                System.out.println(++a);

        }
}
输出值为:3,5。第一个输出a++,此行值不变,下一行+1,变为4,++a就不用多说了。
作者: 王帅---    时间: 2015-12-15 01:14
因为写的不一样
作者: 洋葱头头    时间: 2015-12-15 12:25
结果是一样的 但是参与到算式上 就不一样了
作者: Mr.zhao    时间: 2015-12-15 18:08
一楼话糙理不糙,哎
作者: Zrz_K    时间: 2015-12-15 21:05
a++符号后置的底层原理:
操作时候先提取a的值,后拷贝一个副本,再将a值自增1,并且将副本值返回。
        例:int a = 10;
               a = a++;
               此时a的值仍为10。(先自增后被副本的返回值赋值)
作者: 汐枫wait    时间: 2015-12-15 22:50
++a是先自增1后再打印,,a++是先打印了后在自增
作者: 牧羊人    时间: 2015-12-15 22:54
++在前先产生副作用,然后才取变量值,++在后则是先取变量值,然后才产生副作用。
作者: 赵新培    时间: 2015-12-15 23:08
谢了,已经知道了
作者: 金金金小天    时间: 2015-12-15 23:14
++a  是先进行a+1 运算在进行赋值
a++ 先进行赋值 完了才进行a+1 运算
作者: 秋alin    时间: 2015-12-15 23:35
就是先付费和后付费的问题,++a就是先付费,a++就是先用着在考虑付不付费的问题。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2