JAVA中的整形基本运算

public class Demo1 {
public static void main (String [] args) {
int x = 2;
System.out.println((x++)/3);
}
}
为什么运算结果是0,而不是1?
跪谢~

首先,这个影响整个问题的结果的操作是x++,它是先使用x然后再加的,等价于

 System.out.println((x)/3);//此处x=2
 x=x+1;

其次,除法操作,整数的除法返回值还是int类型,2/3返回的值取整数还是0的。
最后,要想得到1,必须让x>=3,如++x,是先将x+1然后再使用的。

怎么看都不可能是0,我也有疑惑

 因为3是整数,所以这是整除。应该写System.out.println((x++)/(double)3);
或者
System.out.println((++x)/3);

(x++)/3
x++是先使用在自加(相当于x/3;x=x+1);而++x是先自加在使用(x=x+1;x/3),可以试试这个,写程序贵在尝试
其次,对于除法而言,如果两边都是int型,那么结果转成int型,故出现0,可以写成1.0*(x++)/3

(x++)/3是先除后加,所以为0,改成(++x)/3就是先加后除,结果为1

如果你知道++在前和在后的区别就可以轻松搞定了

楼主去搞清楚自增自减运算就ok了,自己去弄明白,理解最深刻了~~

自增运算符与自减运算符

x++/3等同为x/3;x=x+1.
++x/3等同为x=x+1;x/3.