承诺太虚伪
2017-05-04 20:06
package LX504;
public class LX {
public static void main(String[] args) {
int x = 2;
int y = (x++)/3;
System.out.println(y);
}
}
怎么算出结果等于0啊 说下过程吧
首先你得明白 / 的结果怎么取值 :取结果的整数,把余数统统舍去。
再者 x++ 表示 先执行x 再对x进行++
所以 (x++)/3 过程是 x/3 也就是 2/3=0.66666(现实生活中的算术) 结合刚刚说的 / 的取值 所以2/3=0 ,
所以y=0;执行完此句话之后x=3
int y = (x++)/3;//此处“/”表示取整,余数舍去,这里x先执行2/3,再执行x++;y=2/3=0
package LX504;
public class LX {
public static void main(String[] args) {
int x = 2;
int y = (++x)/3;
System.out.println(y);
}
}
x++改成++x就可以的
首先,x和y都是int类型,也就是说x和y都不能有小数位,如果有小数位,系统会自动丢弃,只取小数位前面的整形数字。x刚开始的值为2,运行到 y = (x++)/3,先运行x++, x++的意思是x自身的值的接下来使用的时候增加1,当前语句x的值并不会增加,要等到 y = (x++)/3; 语句执行完再会增加。也就是说这时候 y = 2/3,y的值小于1的,系统自动丢弃后面的小数位,就只剩下0了。
()优先级最高 所以先执行x++,++是算数运算符自增,由于你的x初始值为2,所以x++得值为3,
最后进行3除以3的运算,结果为0,赋值给y。你打印的是y,所以最后显示的是y得值0.
x++是先执行再加1,所以这里是2/3结果等于0,换成++x,结果是1
Java入门第二季 升级版
530553 学习 · 6091 问题
相似问题