大神帮忙 啊 急急急

来源:8-1 什么是类和对象

承诺太虚伪

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啊   说下过程吧

写回答 关注

6回答

  • 小光头
    2017-06-06 20:36:27

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

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

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

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

  • qq_喷泉_0
    2017-05-14 21:50:36

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

  • 念着倒都人的帅
    2017-05-04 22:30:20

    package LX504;

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

    x++改成++x就可以的 

    念着倒都人的...

    你可以看下JAVA入门第一季3-2 Java中的算数运算符 也许你能懂点

    2017-05-04 22:33:20

    共 1 条回复 >

  • 慕圣0830664
    2017-05-04 21:28:43

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

  • qq_布宜诺斯艾利斯_1
    2017-05-04 20:24:37

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

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

    qq_布宜诺... 回复承诺太虚伪

    我的理解是错的,楼下正解

    2017-05-05 17:28:43

    共 2 条回复 >

  • 慕粉9238877
    2017-05-04 20:23:24

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

    承诺太虚伪

    说详细点 好吗 没听明白

    2017-05-04 21:53:59

    共 2 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530553 学习 · 6091 问题

查看课程

相似问题