A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 也许_还不懂 中级黑马   /  2014-11-12 20:10  /  2192 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

若x=2,则表达式(x++)/3的值是?  
我用Java运行了一下结果是0
代码是class Demo {        public static void main(String[] args) {
                int x = 2;
                x++;  {
                        System.out.println(x);
                }
        }
}

  我认为结果不应该是1么,x++  X不就应该等于3了么  3/3=1啊

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

29 个回复

正序浏览
也许_还不懂 发表于 2014-11-12 20:27
若x=2,则表达式(x++)/3的值是?  
我用Java运行了一下结果是0
代码是class Demo {        public static ...

因为后++是先进行其他运算,然后再自增。所以x++/3,就是2/3。当2/3的运算做完之后,才会来做
x++就是自增的运算。2/3在int类型中,由于是0.6666……,也就是不到1,就会取整为0.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
a8851625 发表于 2014-11-14 20:59
肯定是0啊,x++表示先用后加,所以你表达式是先2/3=0,然后再加1.但是你输出的就是2/3。绝对是0的 ...

还是你这句解释的明白,一下就能懂
回复 使用道具 举报
郑飞 发表于 2014-11-14 19:19
看来楼主算的没错 就是脑子里一直记着那个表达式 所以把返回值记成是表达式的值了 刚开始经常犯这个错 ...

是的 ,哇  高级黑马  好厉害
回复 使用道具 举报
我看着也是1啊
回复 使用道具 举报
也许_还不懂 发表于 2014-11-12 21:20
问题是  若x=2,则表达式(x++)/3的值是?

肯定是0啊,x++表示先用后加,所以你表达式是先2/3=0,然后再加1.但是你输出的就是2/3。绝对是0的

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
这道题是先增和后增的问题。
回复 使用道具 举报
郑飞 高级黑马 2014-11-14 19:19:57
24#
也许_还不懂 发表于 2014-11-14 10:16
额 ,我主要是想看看我根据这道题自己写的代码对不对  现在明白为什么是0了  谢谢你啦 ...

看来楼主算的没错 就是脑子里一直记着那个表达式 所以把返回值记成是表达式的值了 刚开始经常犯这个错;P
回复 使用道具 举报
x++先操作x的值,再++
++x先自增1再操作
回复 使用道具 举报
李春江 发表于 2014-11-13 22:58
这个必须是0 啊
x=2;
(x++)/3;先使用x的值;即2/3=0;但是如果你打印X的值就是3 了,因为已经使用过了, ...

额 ,我主要是想看看我根据这道题自己写的代码对不对  现在明白为什么是0了  谢谢你啦
回复 使用道具 举报
一个是前加一个是后加
回复 使用道具 举报
也许_还不懂 发表于 2014-11-12 21:17
class Demo {
        public static void main(String[] args) {
                int x = 2; {

这个必须是0 啊
x=2;
(x++)/3;先使用x的值;即2/3=0;但是如果你打印X的值就是3 了,因为已经使用过了,x会自动+1的
注意:希望楼主不要再问这个问题了,如果真不懂,你应该好好补习计算机常识了:L
回复 使用道具 举报
本帖最后由 javaAndroid 于 2014-11-13 20:36 编辑

先加与后加的问题
(x++)/3意思是,先用x进行操作之后再自增1
也就是说这句话相当于执行x/3之后,x=x+1
如果写为(++x)/3,答案就是1了。但x++单独作为一个语句的话
和++x作为一个单独语句的话
二者结果是没区别的
但是int x=2;x++;
然后再执行(x++)/3,结果就为1了。执行完这句x的值为4.
回复 使用道具 举报
本帖最后由 200米王朝 于 2014-11-13 17:27 编辑

(x++) / 3

先运算2/3,X再自增1.



楼主代码写错了吧, 按楼主你的代码 X=2, X++
那打印的结果 X=3

回复 使用道具 举报
表达能力有待提高,还有帖子可以编辑的
回复 使用道具 举报
柳超 发表于 2014-11-12 20:55
这样写结果是1如果你不信 !我可以给你上图

Sorry 我问题没说明白  耽误时间了
回复 使用道具 举报
李春江 发表于 2014-11-12 20:21
应该X++是先使用X的值,然后再自加一下。所以应该为0(2/3)+1=1;

Sorry 我问题没说明白  耽误时间了  
回复 使用道具 举报
柳超 中级黑马 2014-11-12 21:34:27
14#
也许_还不懂 发表于 2014-11-12 21:20
问题是  若x=2,则表达式(x++)/3的值是?

先执行表达式! 然后 x 加1
也就是説      除3 的结果是 0       后   x + 1
回复 使用道具 举报
李春江 发表于 2014-11-12 21:01
楼主你不是在逗我吧,你看好了
1.int x=2;
2.x++;相当于x=x+1;此时x的值位3;

问题是  若x=2,则表达式(x++)/3的值是?
回复 使用道具 举报
柳超 发表于 2014-11-12 20:55
这样写结果是1如果你不信 !我可以给你上图

问题是      若x=2,则表达式(x++)/3的值是?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马