当前位置:编程学习 > JAVA >>

请问i++和++i有什么区别

我怎么做都没看懂,可以举个通俗的列子吗?请教个位大神
--------------------编程问答-------------------- 表达式 (i++) 的值是i没增加前的值 
表达式 (++i) 的值是i增加后的值 

i的值都自增1 --------------------编程问答-------------------- 比如这个表达式:b=i++;其实就等价于b=i;i +=1;
而b= ++i;等价于i +=1;b=i; --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算 --------------------编程问答--------------------
引用 3 楼  的回复:
i++:先运算,再自增
++i:先自增,再运算

+1 --------------------编程问答-------------------- i++是先进行方法内的操作后i再自增1,++i是自增1后在进行该方法中的其他操作 --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算 
 
--------------------编程问答--------------------
引用 3 楼  的回复:
i++:先运算,再自增
++i:先自增,再运算

+1 --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算
public static void main(String[] args) {
int i = 0;
System.out.println("++i=" + ++i);
System.out.println("i=" + i);
System.out.println("i++=" + i++);
System.out.println("i=" + i);
} --------------------编程问答--------------------
引用 8 楼  的回复:
i++:先运算,再自增
++i:先自增,再运算
public static void main(String[] args) {
int i = 0;
System.out.println("++i=" + ++i);
System.out.println("i=" + i);
System.out.println("i++=" + i++);
System.out.println……

+1 --------------------编程问答--------------------
引用 3 楼  的回复:
i++:先运算,再自增
++i:先自增,再运算


赞同 --------------------编程问答-------------------- i = 5
j = i++  ; j = 5,i = 6 
z = ++i  ; z = 6,i = 6
i都自增1,但是表达式的值不同

--------------------编程问答-------------------- i++ 是先进行方法内的操作后i再自增1,
++i 是自增1后在进行该方法中的其他操作;
++在前,则先进行自增运算,
++在后,则别的运算结束,在进行自增运算!! --------------------编程问答-------------------- System.out.println(++i)先加后再输出;
System.out.println(i++)先输出再运算; --------------------编程问答-------------------- wozenme恢复不了啊  --------------------编程问答-------------------- ·····i++·····对于i开辟的内存,先取出其中存放的值进行运算,再对内存中存放的值自增;
·····++i·····对于i开辟的内存,先对此内存中存放的进行值自增,再取出内存中自增后的变量值进行运算;
不知道有没有把你绕糊涂; 呵呵,所有操作均内存,不是简单的口诀式死记。 --------------------编程问答-------------------- 举个例子:
i=1; 
j=i++;
j=++i;
你可以这么记,在j=i++中,i前面是赋值运算符,直接把i的值赋给j,j=1,然后i再自增1,i=2;
而在j=++i中,j=++i,i前面是自增运算符,i先自加1再把值赋给j,因前面i=2,自加1后为3,j=3; --------------------编程问答-------------------- 你自己去试试  就会恍然大悟的  逼别人说的都管用  java 的靠 实践
--------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算 --------------------编程问答-------------------- (i++)
(++i)
括在括号里就是一个东西了 --------------------编程问答-------------------- 例:
public class Test {
    public static void main(String[] args) {
int i=1;
int i1=i++;
System.out.println("【i1=i++】 :i++:先运算,再自增 ");
System.out.println(" i="+i+"   i1="+i1);
int y=1;
int y1=++y;
System.out.println("【y1=++y】 :++i:先自增,再运算");
System.out.println(" y="+y+"   y1="+y1);
    }
}
打印结果:
【i1=i++】 :i++:先运算,再自增 
 i=2   i1=1
【y1=++y】 :++i:先自增,再运算
 y=2   y1=2
--------------------编程问答-------------------- int i=0;
//i++;输出0 
//++i;输出1  

简单理解就是 哪一个加号在前面 此时就+1  加号在后面的 下次出现i才+1 --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算
如:
int i =1;
i++;//此时i还为1
++i;//此时i为2 --------------------编程问答-------------------- i++先加在用
++i先用再加
这么说简单吧 --------------------编程问答-------------------- i++ 和 ++i 效果都是加一
应该这样理解
     i= 10;
     如果执行 int j = i++  那么  j=10,i=11
     如果执行 int j = ++i  那么  j=11,i=11
   就这么简单 --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算 
--------------------编程问答-------------------- i++ 和 ++i 效果都是加一 --------------------编程问答-------------------- 如果是单独用,这两个根本就没有区别;
和其他一起用的时候你就该注意了 --------------------编程问答-------------------- int i=0;
int j=0;
    j=i++;  结果 >>   j=0;
    j=++i;  结果 >>   j=1;
--------------------编程问答--------------------
引用 3 楼  的回复:
i++:先运算,再自增
++i:先自增,再运算

+1 --------------------编程问答-------------------- 一般没有区别,只有输出时:
System.out.println(i++);
System.out.println(++i);
上面输出的是i
下面输出的是i+1 --------------------编程问答-------------------- 一个是先运算 一个先取值 --------------------编程问答-------------------- 我不凑热闹了,基本大家都给出答案了! --------------------编程问答-------------------- 若i=0;b=i++;此时b==0;i==1;若i=0;b=++i;此时b==1;i==1;
i++是先赋值i再加一,++i是i先加一再赋值



求给分~~~ --------------------编程问答-------------------- i++,先使用后++。
++i,先++后使用 --------------------编程问答-------------------- --------------------编程问答-------------------- 2楼的通俗易手懂啊,结合回复,自己写个程序验证下呗 --------------------编程问答-------------------- 大家说的真好。 --------------------编程问答-------------------- 1楼正解 --------------------编程问答--------------------
引用 20 楼  的回复:
例:
public class Test {
  public static void main(String[] args) {
int i=1;
int i1=i++;
System.out.println("【i1=i++】 :i++:先运算,再自增 ");
System.out.println(" i="+i+" i1="+i1);
int y=1;
int y1=++y;……
 这里已经说的很详细了。。 --------------------编程问答-------------------- i++等同于本次运行取值为i,运行之后i=i+1;
++i等同于本次运行取值为i+1;运行之后i=i+1;
--------------------编程问答-------------------- 总结一句话,++在前 先加在用,++在后,先用在加 --------------------编程问答-------------------- 运算和赋值的顺序问题,一个一个先加在赋值一个先赋值再加 --------------------编程问答--------------------
引用 2 楼 littlebirdofjava 的回复:
比如这个表达式:b=i++;其实就等价于b=i;i +=1;
而b= ++i;等价于i +=1;b=i;


引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算


正解…… --------------------编程问答--------------------
引用 2 楼 littlebirdofjava 的回复:
比如这个表达式:b=i++;其实就等价于b=i;i +=1;
而b= ++i;等价于i +=1;b=i;


引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算


引用 21 楼 asdf544265772 的回复:
int i=0;
//i++;输出0 
//++i;输出1  

简单理解就是 哪一个加号在前面 此时就+1  加号在后面的 下次出现i才+1


还有其他都是正解,楼主可以自己测试下 --------------------编程问答--------------------
引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算

正解 --------------------编程问答--------------------
引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算

+1 --------------------编程问答-------------------- i++,干完事再加,++i是加完再干 --------------------编程问答-------------------- int i=1;
int b=i++;
那么输出的b=1,i=2
另一个
int i=1;
int b=++i;
那么输出b=2,i=2 --------------------编程问答-------------------- 这个好处理 ++表示自增一次, ++ 和 i 你就记着谁在前谁先起作用就行了。
++i表示先增在用 i++表示先用再加 --------------------编程问答-------------------- 说白了,你只要记住这个口诀走遍天下都不怕遇到这种题
i++;先赋值在递增!
如果i初始化值为0
i=0;i=i+1
++i;直接赋值! --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算

class Test {
    public static void main(String [] args) {
          int i = 0;
          System.out.println("i++:" + (i++));
          System.out.println("i:" + i);           
          i = 0;
          System.out.println("++i:" + (++i));
          System.out.println("i:" + i);    
    }
}
--------------------编程问答--------------------
引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算


嗯嗯嗯 --------------------编程问答-------------------- ++i 现加后用 ,i++先用后加 --------------------编程问答-------------------- 对,++i 现加后用 ,i++先用后加  --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算
--------------------编程问答-------------------- 若i=1
i++:i的值变为2,但i++这个表达式的值还是1;
++i:i的值变为2,且++i这个表达式的值也是2. --------------------编程问答-------------------- i++   :先运算完i,然后i再自加1
++i   :i先自加1,再加入其它运算 --------------------编程问答--------------------
引用 8 楼 Admon 的回复:
i++:先运算,再自增
++i:先自增,再运算
public static void main(String[] args) {
int i = 0;
System.out.println("++i=" + ++i);
System.out.println("i=" + i);
System.out.println("i++=" + i++);
System……


+1 --------------------编程问答-------------------- 嘿嘿,永恒的问题 --------------------编程问答--------------------
引用 4 楼 java_xiao_ye 的回复:
引用 3 楼  的回复:i++:先运算,再自增
++i:先自增,再运算
+1

+2 --------------------编程问答-------------------- 一定要把他们看做一个整体。。。

i++:先参与运算,再自增
++i:先自增,再参与运算 --------------------编程问答-------------------- 几百年的帖子了 还在这  求楼主给里结贴 --------------------编程问答-------------------- 自增运算,i++,算后再增
++i,自增后再运算。 --------------------编程问答-------------------- 这种问题,看着好无奈! --------------------编程问答-------------------- 好经典的c++题目。。。还差一分。。。一分  --------------------编程问答--------------------
引用 9 楼 shmilyYzz 的回复:
引用 8 楼  的回复:i++:先运算,再自增
++i:先自增,再运算
public static void main(String[] args) {
int i = 0;
System.out.println("++i=" + ++i);
System.out.println("i=" + i);
System.out.println("i++=" + i……

+1 --------------------编程问答-------------------- int i = 0;将i++,和++i看成一个整个表达式来理解,i++整个表达式的值就是0,而++i整个表达式的值是1。而i的值都为1。希望能帮助到你。 --------------------编程问答-------------------- 话虽这么说
i++:先参与运算,再自增
++i:先自增,再参与运算
但是LZ你想要弄明白,劝你自己亲自试试,纸上得来终觉浅,绝知此事要躬行 --------------------编程问答-------------------- 例如:a=3,b=5
     y=(++a)+b 
     结果:y=9  a=4  b=5
     z=(a++)+b
     结果:z=8  a=4  b=5
前者是a先自增1再参与运算,后者是先运算完a再自增1. --------------------编程问答-------------------- ++i是先先加后运算   i++是 先运算 后加 --------------------编程问答-------------------- kankan --------------------编程问答-------------------- ++在后 先用后加
++在前 先加后用 --------------------编程问答-------------------- int i=0;
int a=i++;  a现在的值为0;
int a=++i;  a现在的值为1; --------------------编程问答-------------------- 楼上说的很对 --------------------编程问答-------------------- i++:先运算,再自增
++i:先自增,再运算
public static void main(String[] args) {
int i = 0;
System.out.println("++i=" + ++i);
System.out.println("i=" + i);
System.out.println("i++=" + i++);
System.out.println("i=" + i);


北京普科国际学生 --------------------编程问答--------------------
引用 2 楼 littlebirdofjava 的回复:
比如这个表达式:b=i++;其实就等价于b=i;i +=1;
而b= ++i;等价于i +=1;b=i;
这个已经很明显了,楼主再看不懂就真没办法了,你可以自己写个程序实践下不就知道了。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算

+1 --------------------编程问答--------------------
Quote: 引用 78 楼 su_tata 的回复:

引用 3 楼 diypyh 的回复:
i++:先运算,再自增
++i:先自增,再运算


楼上已经说的很好了。应该能理解了吧楼主。 --------------------编程问答-------------------- i++先自己赋值,然后在+1
++i先+1在进行赋值
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,