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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sl123 中级黑马   /  2015-8-12 23:26  /  253 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int b=3;
System.out.println((b++)/4);
这个结果为什么是0呢?括号括起来不是先计算括号里面的吗?那样应该等于1啊

6 个回复

倒序浏览
++放在后面指的是先运算后自增,如果没有循环的时候,这一次的b还是3,3/4取整数部分之后是0,所以打印结果为0.如果你想要得出1,就++b,或者b+1,和括号没关系。这种自增一般都是用作循环步进时使用的。
回复 使用道具 举报
System.out.println((b++)/4);会先计算b/4即3/4,然后b才会+1,与括号无关,所以才打印出0。楼上正解
回复 使用道具 举报
zby_allan 发表于 2015-8-13 00:32
++放在后面指的是先运算后自增,如果没有循环的时候,这一次的b还是3,3/4取整数部分之后是0,所以打印结果 ...

但是用括号括起来,不是先算括号里面的自增,然后再除吗
回复 使用道具 举报
孟茹 发表于 2015-8-13 18:07
System.out.println((b++)/4);会先计算b/4即3/4,然后b才会+1,与括号无关,所以才打印出0。楼上正解 ...

恩恩,与括号没有关系啊
回复 使用道具 举报
和括号没有关系,先运算再加一
回复 使用道具 举报
1楼正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马