java中i++与++i是什么意思

我是一个java初学者,在网上找教程自学,下面这个我怎么也闹不懂,第一个打印出来的i是哪个i,为什么是6,count打印出来为什么是12,说详细一点,谢谢
int i=3;
int count=(i++)+(i++)+(i++);
System.out.println(i);
System.out.println(count);

//i++和++i是有区别的,
//i++是在一个先使用后加1,即先使用i的值,后让i+1
//++i则是先加1后使用,即先让i+1后再使用i的新值
//还有什么不明白的可以hi我
class ijiajia
{
public static void main(String[] args)
{
System.out.println("Hello World!");
int i=3;
int count=(i++)+(i++)+(i++);//count=3+4+5,不信的话你可以用count=(i++)+(i++);这时会等于7
System.out.println(i);//i=6
System.out.println(count);//count=12
int j=3;
count=(++j)+(++j)+(++j);//count=4+5+6
System.out.println(j);//j=6
System.out.println(count);//count=15
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-16

i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;

++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:

前缀++,先使用变量,再进行变量自增1

后缀++,先进行变量自增1,再使用变量

如:

示例代码1:
int i=0;
while( i++ < 5 ) //先用i的原值与5比较,比较完成后,无论结果是真还是假,都要再进行i=i+1运算
{
    System.out.print( i+ " ");
}
这个循环运行5次,输出 1 2 3 4 5,最后的i值是6
示例代码2:
int i=0;
while( ++i < 5 ) //先进行i=i+1运算,然后用i的新值与5比较,判断结果是真还是假
{
    System.out.print( i+ " ");
}
这个循环运行4次,输出 1 2 3 4,最后的i值是5

第2个回答  2016-06-22
i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;
++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:
前缀++,先使用变量,再进行变量自增1
后缀++,先进行变量自增1,再使用变量
如:
示例代码1:
int i=0;
while( i++ < 5 ) //先用i的原值与5比较,比较完成后,无论结果是真还是假,都要再进行i=i+1运算
{
System.out.print( i+ " ");
}
这个循环运行5次,输出 1 2 3 4 5,最后的i值是6
示例代码2:
int i=0;
while( ++i < 5 ) //先进行i=i+1运算,然后用i的新值与5比较,判断结果是真还是假
{
System.out.print( i+ " ");
}
这个循环运行4次,输出 1 2 3 4,最后的i值是5
第3个回答  2012-07-17
怎么说呢,i = i++就是坑爹的!!理论上讲,语言规范上就不应该这么写。
实际编译运算结果是 i = i++ 的话,最后i一直是原值,没有自增
i = i+1 ,很容易理解就是i的值增1,返回给i

而 i = i++ ,i ++ 理论上在运算完毕以后要自加的,这个自加应该是发生在赋值之前,于是i的临时新值是 i+1
运算符只有一个 ++,所以会直接使用赋值号把右侧运算结果赋值给 i,于是 i 还是等于原来的 i
底层源码没见过……,也大致就是感觉如此了
第4个回答  2008-11-08
java中的++ i和 i++ 和c语言中是一样的

首先你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。
eg:i=5;这两个动作完成后i的值都变成6。

其次 对于他赋值给的那个变量就不一样了。
eg:i=5;
a = ++i,这句执行完后a = 6,当然i=6;
但是
a = i++,这句执行完后a = 5,i=6;

看了上面的例子应该明白结果了吧。

理解的话对于a = ++i你可以理解先执行+,再赋值。而对于a = i++,是先执行赋值再+。

java中i++与++i是什么意思
综上i与j 相当。简单的说i++就是先使用的i的值然后再加1,而++i就是先将i+1,然后使用i改变后的值。希望你能采纳

java中i++和++ i有什么区别?
i++表示先进行表达式运算,再进行自增运算的意思。++i表示自增或者自减运算,再进行表达式运算的意思。如果只是从i的值来看,两者的数值最后都一样。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

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则是先加一后赋值。使用javap -verbose命令解析class文件,常量池部分包括类名、版本等元数据。在i=i++的情况下,初始值设为1,操作数栈为1,加载局部变量表中的第一个int值至栈顶。接着执行iinc指令,对局部变量表中的第一个int值加1,操作数栈保持不变,局...

java的 i++ ,++i ,i-- ,--i什么意思啊?
i++是i变量自增1,就是i=i+1的简写,后面的也是一样,都是简写。但是i++与++i是有差别的,int i=1;int num=i++;system.out.println(num);这是输出的Num=1的 int i=1;int num=++i;system.out.println(num);这时输出的Num=2。也就是说,i++是先赋值,后自增。而++i是先自增,...

i++和++i命令有什么区别?
i++和++i都是用于增加变量i的值的操作,但它们在使用上存在区别。详细解释:1. 基本定义:i++ 和 ++i 都是用于修改变量 i 的值的操作。在大多数编程语言中,如 C、C++、Java 等,它们都表示对变量 i 进行加 1 操作。2. 操作顺序的区别:i++: 先返回变量 i 的当前值,然后再执行加 1 ...

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

java中++i和i++的区别
i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;++运算符分为前缀++和后缀++,如i++中的++就是后缀运算符,++i中的就是前缀运算符,两个的区别在于:前缀++,先使用变量,再进行变量自增1 后缀++,先进行变量自增1,再使用变量 如:示例代码1:int ...

i++和++i区别
i++是后置自增运算符,意味着它会在表达式求值后再将值加1。而++i是前置自增运算符,会在表达式求值前先将值加1。2、表达式的值不同 由于两者的执行顺序不同,它们在表达式中的值也可能不同。如果i的初始值为1,那么i++将返回1,并将i的值增加到2。而++i将返回2,并将i的值增加到2。3、...

相似回答