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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

一个是前加一个是后加
回复 使用道具 举报
李春江 发表于 2014-11-13 22:58
这个必须是0 啊
x=2;
(x++)/3;先使用x的值;即2/3=0;但是如果你打印X的值就是3 了,因为已经使用过了, ...

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

看来楼主算的没错 就是脑子里一直记着那个表达式 所以把返回值记成是表达式的值了 刚开始经常犯这个错;P
回复 使用道具 举报
这道题是先增和后增的问题。
回复 使用道具 举报
也许_还不懂 发表于 2014-11-12 21:20
问题是  若x=2,则表达式(x++)/3的值是?

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

评分

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

查看全部评分

回复 使用道具 举报
我看着也是1啊
回复 使用道具 举报
郑飞 发表于 2014-11-14 19:19
看来楼主算的没错 就是脑子里一直记着那个表达式 所以把返回值记成是表达式的值了 刚开始经常犯这个错 ...

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

还是你这句解释的明白,一下就能懂
回复 使用道具 举报
也许_还不懂 发表于 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

查看全部评分

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马