为了账号安全,请及时绑定邮箱和手机立即绑定

大神帮忙 啊 急急急

package LX504;

public class LX {
 public static void main(String[] args) {
  int x = 2;
  int y = (x++)/3;
  System.out.println(y);
 }
}

怎么算出结果等于0啊   说下过程吧

正在回答

6 回答

首先你得明白 / 的结果怎么取值 :取结果的整数,把余数统统舍去。

再者 x++ 表示 先执行x 再对x进行++

所以 (x++)/3  过程是  x/3  也就是 2/3=0.66666(现实生活中的算术)  结合刚刚说的 / 的取值  所以2/3=0 ,

所以y=0;执行完此句话之后x=3

0 回复 有任何疑惑可以回复我~

 int y = (x++)/3;//此处“/”表示取整,余数舍去,这里x先执行2/3,再执行x++;y=2/3=0

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就可以的 

0 回复 有任何疑惑可以回复我~
#1

念着倒都人的帅

你可以看下JAVA入门第一季3-2 Java中的算数运算符 也许你能懂点
2017-05-04 回复 有任何疑惑可以回复我~

首先,x和y都是int类型,也就是说x和y都不能有小数位,如果有小数位,系统会自动丢弃,只取小数位前面的整形数字。x刚开始的值为2,运行到 y = (x++)/3,先运行x++, x++的意思是x自身的值的接下来使用的时候增加1,当前语句x的值并不会增加,要等到 y = (x++)/3; 语句执行完再会增加。也就是说这时候 y = 2/3,y的值小于1的,系统自动丢弃后面的小数位,就只剩下0了。

1 回复 有任何疑惑可以回复我~

()优先级最高 所以先执行x++,++是算数运算符自增,由于你的x初始值为2,所以x++得值为3,

最后进行3除以3的运算,结果为0,赋值给y。你打印的是y,所以最后显示的是y得值0.

0 回复 有任何疑惑可以回复我~
#1

承诺太虚伪 提问者

3/3=0??? 为什么??
2017-05-04 回复 有任何疑惑可以回复我~
#2

qq_布宜诺斯艾利斯_1 回复 承诺太虚伪 提问者

我的理解是错的,楼下正解
2017-05-05 回复 有任何疑惑可以回复我~

x++是先执行再加1,所以这里是2/3结果等于0,换成++x,结果是1

2 回复 有任何疑惑可以回复我~
#1

承诺太虚伪 提问者

说详细点 好吗 没听明白
2017-05-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

大神帮忙 啊 急急急

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信