java中的++i和i++如何计算

package dir.Demo;
import java.util.*;
public class Demo01 {
public static void main(String[] args) {

int i = 2 ;
int d ;
d = i++ + ++i + ++i + ++i + ++i + ++i / 10 / 16 ;
System.out.println(i) ;
System.out.println(d) ;
}
}
i的我会算d的我不会算还请各位帮忙把d的公式写下来做参考本人先谢谢各位了

++i是i参与计算之前自增1,i++就是i参与计算之后自增1
在java中i++和++i都是运算方式
例:
1、i++先引用后增加
int i=0;
int j=i++;
运算过后,j=0;表明i++是指先把i赋值给j然后再自身加1;
2、++i 先增加后引用
int i=0;
int j=++i;
运算过后,j=1;表明++i是指先自身加1后赋值给j;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-11

i++就是i参与计算之后自增1,++i是i参与计算之前自增1:

d=i++ + ++i + ++i + ++i + ++i + ++i / 10 / 16 ;

第一个加数:i++为2,之后i=3,

第二个加数:++i为4,之后i=4,

第三个加数:++i为5,之后i=5,

第四个加数:++i为6,之后i=6,

第四个加数:++i为7,之后i=7,

第五个加数:++i/10/16,首先++i为8,之后i为8,然后8/10/16=0,这里是整数不计余数

结果 d = 2 + 4 + 5 + 6 + 7 + 0 = 24;   i = 8

追问

我就不知道为什么要加零呢不是加八吗
然到不是这样写的吗?
2 + 4 + 5 + 6 + 7 + 8 / 10 / 16

追答

加减乘除,先算乘除啊,8 / 10 / 16 =0

本回答被提问者采纳
第2个回答  2013-09-07
步骤一:万变不离其宗
        非,算,关,与,或,条,赋 (运算符优先级 高到低)
        
步骤二:i++ 后做i=i+1
        ++i 先做i=i+1
        
步骤三:d = i++ + ++i + ++i + ++i + ++i + ++i / 10 / 16 ;

         <==>
         
        d = i++ + ++i + ++i + ++i + ++i + (++i / 10 / 16) ;
        
        d =  3  +  5  +  6  +  7  +  8  + ( 3  / 10 / 16 );
        
        
步骤四:不知道错了没

追问

这样算好像是错误的用加法可以一旦用了除法就不行了

第3个回答  2013-09-07
i++是先先执行操作再自动加1,++i是先自动加1再执行操作,也就是d=2+4+5+6+7+8/10/16=24,此时i=8
第4个回答  2013-09-07
++i的值为i+1,同时i的值立即加1;而i++的值为i,表达式结束之后或者遇到分隔符i的值才变为i+1

java中的++i和i++如何计算
1、i++先引用后增加 int i=0;int j=i++;运算过后,j=0;表明i++是指先把i赋值给j然后再自身加1;2、++i 先增加后引用 int i=0;int j=++i;运算过后,j=1;表明++i是指先自身加1后赋值给j;

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++...

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加1,++i 是先对i进行加1,再把加1后的i的值进行表达式的计算。

Java中的 ++i 和 i++
每一个Java方法执行,实质上是一个栈帧的入栈与出栈过程。Main方法也不例外,计算操作主要在操作数栈进行,结果则被放回局部变量表或传给下一个方法。自增或自减运算(++i 或 i++)发生在局部变量表中,而非操作数栈。理解这一点对于优化代码性能至关重要。通过javap指令反编译执行过程,我们可以...

终于弄明白 i = i++和 i = ++i 了
- **第一步**:`int i = 1`,这是基本的赋值操作。- **第二步**:`i = i++`。这里的重点在于`++i`的执行顺序。在Java中,`++i`会先获取`i`的值(1),然后执行自增操作(变为2),最后返回这个值(1)。因此,在这个步骤中,`i`的值保持不变,仍然是1。3. **`i = ++i`*...

Java里的 i++和++i
i++表示先输出i的值,再+1,所以第二个输出语句输出是6.++j表示先+1再输出,所以两次输出都是6

在java中 i++ 与++i 有什么不同
int k = j+i++;\/\/此处i=2,先加上j的值3,赋给k,所以k=5,然后i再加1 int k = ++j+i\/\/此处i经过上面的+1,现在为3 \/\/而++在前,意味着j的值先加1,变为4,再加上i的值3。所以此时k=7 总结:++在后先计算当前的表达式子后,变量本身在+1 ++在前先变量本身+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++...

在java中 i++和++i有什么区别
{int i=0; int z=++i;} 运算过后,j=0;表明i++是指先把i赋值给j然后再自身加1;运算过后,z=1;表明++i是指先自身加1后赋值给z;总之++号在后面的意思是先赋值然后自身加1;++在前面的是先自身加1后赋值。“++”是java单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元...

相似回答