java里的++i和i++的区别

看了好多解释都看不懂什么意思。有没有更能简单理解的解释?
这里有一道题
int num=6;
System.out.print(num++);
System.out.print(++num);
我知道答案是6和8
但是单独选的时候却是6和7
谁能解释一下?谢谢

System.out.print(num++);
相当于:
System.out.print(num);
num=num+1;

System.out.print(++num);
相当于
num=num+1;
System.out.print(num);

楼主执行完第一个输出的时候输出6,此时num=6+1=7
执行第二个输出的时候,num=7+1=8,输出8。追问

那为什么num++的时候不是打印出7来而是6?那个1去哪里了?(++num不存在的情况下)

追答

没有System.out.print(++num);这句的时候,打印是在+1之前的
楼主看我的代码的顺序,是先打印的num值,打印完了,num才加的1,不信楼主可以这么试一下。
System.out.print(num++);
System.out.print(num);
结果肯定是6和7

追问

这个我知道,但是如果现在只有
int num=6;
System.out.print(num++);
输出的结果是6.其实不是应该num的值已经变成7了吗?那那个1去哪里了?

追答

楼主可以简单的这么想,
num++是先用num,用完了之后,num才去增1,然后新值覆盖旧值。
++num是无论如何都得先给我增1,然后再拿去用。
System.out.print(num++);这句,真正给java执行的时候,java是先输出了num的值,之后才是增1,也就是说打印完了,6已经显示出来了之后,num才加1.
有一个执行的先后顺序的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-29
++在后面,就是用了再加
++在前面,就是加了再用
所以,System.out.println(i++)中,++在后面,所以就是用了再加,故而先用了i,再把i+1.。
反正我就是这样记得。。楼主可以参考下
第2个回答  2013-11-29
其实很简单
++i ++在左边的,先++在往下执行

如: int i = 5

System.out.println(++i) //输出6 (++在左边,先++在往下执行)

i++先执行 在++
如: int i = 5

System.out.println(++i) //输出5 (++在右边,先输出在++) 这行代码执行完,i的值,其实是6了
第3个回答  2013-11-29
workdinner回答的很对,i++使用后加1,++i使用前加1;
所以单独用的话是显示6和7,
你在一起用先显示i++,显示的是6,但i=i+1=7,再用++i所以显示8
第4个回答  2013-11-29
int num=6;
System.out.print(num++);//先输出num(为6),然后sum自加1
System.out.print(++num);//num先自加1,此时num为6+1+1,然后输出num(为8)

如果单独选 那么num只是加了一次 所以为7

你明白了吗?

java++ i和i++有什么区别?
1、理论上的区别:i++表示先引用i变量的数值然后再对i进行加1的操作,而++i是先对i变量进行加1的操作,然后再引用i变量的数值。2、表达式的形式不同:一个将++放在变量的前面,一个将++放在变量的后面。3、运算的优先级不同:i++中的“++”运算符的优先级比++i中“++”运算符的优先级高。例...

java++ i和++ i区别在哪?
1、赋值顺序不同 ++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。2、效率不同 比如i=3,b=i++就是说b=3,完成之后让...

java中i++和++ i有什么区别呢?
1、++i是先改变i的值即加1后再使用i的值;而i++是先使用i的值在改变它的值即加。2、for循环内部仅形式不同:当i++循环和++i循环在for循环内部,虽然形式上明显不同,但输出结果可以一样。如下图所示:for(i++)循环:输出结果:for(++i)循环:输出结果:3、print()输出函数内,不仅形...

i++和++i的区别
i++和++i的区别:1、i++ 返回原来的值,++i 返回加1后的值。2、i++ 不能作为左值,而++i可以。3、i++前者是先赋值,然后再自增;++i后者是先自增,后赋值。如果有表达式 a = i++ ;它等价于 a = i;i = i + 1;如果有表达式 a = ++i;它等价于i = i + 1;a = i...

java中i++和++i的区别?
++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:前缀++,先使用变量,再进行变量自增1 后缀++,先进行变量自增1,再使用变量 如:示例代码1:int i=0;while( i++ < 5 ) \/\/先用i的原值与5比较,比较完成后,无论结果是真还是假,都...

Java里的i++与++i的问题
首先,你前面一句话说的很对,i++是先运算最后加,++i是先加后参与运算。至于for(int i=0;i<20;i++){ };循环中的i++,它是这样递增的:i++是迭代语句,它的执行是有先后顺序的 程序进入for循环后,先执行int i=0;初始化,它只执行一次,然后程序检查i<20;如果i<20那么执行for循环,...

java中++ i和i++有什么区别?
++i是使用i之前先使i加一。i++是使用i之后再加一。如果不能理解,那么可以理解为:++i是先计算,再操作,i++是先操作,再计算。JAVA里的自增运算符。其中:++i和i++是谁在前先取谁,但加一优先运算并赋给原值,取的值再参与其他运算。++在后,则是先用原来的值参与运算,遇到一个特殊序列点...

i++和++i命令有什么区别?
i++ 与 ++i 的主要区别有两个:一、 i++ 返回原来的值,++i 返回加1后的值。例如在Java中:public class Test{ public static void main(String [] args){ int i = 1;int s = ++i;int x= i++;System.out.printLn(i);System.out.printLn(s);System.out.printLn(x);} } 答...

java 中 i++和++i有什么区别
i++和++i都是对i进行+1的操作,不同的是i++是在i值被使用后才+1而++i是i值在被使用之前就+1;拿你的例子进行说明 先分析count=(i++)+(i++)+(i++);运算是从左向右的,由于i++是在i值被使用后才+1所以第一个括号的(i++)应该为3,但是i的值变成了4,当运算第二个括号(i++...

i++和++i的区别
i++和++i的主要区别在于操作方式和返回值的时机不同。详细解释:操作方式:1. i++:这种操作是先使用当前的i值,然后将其增加1。可以理解为先取值后增加。例如,如果i等于5,表达式`j = i++`将首先使用i的当前值5赋给j,然后i增加1变为6。2. ++i:这种操作是先增加i的值,然后使用该增加...

相似回答