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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 8047107   /  2013-6-25 15:16  /  3722 人查看  /  35 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

结果是11
回复 使用道具 举报
结果是11
这里牵连到运算符优先级和结合性的问题,int i=6;i +=i-1;“-”为算数加减运算符,优先级为4;而“+=”是赋值运算符,优先级为14,低于加减运算符。所以要先算“i-1”。
附上运算符的优先级和结合性的表:

优先级 描述 结合性
1 分隔符 右到左
2 对象归类,自增自减运算,逻辑非 左到右
3 算术乘除运算 左到右
4 算术加减运算 左到右
5 移位运算 左到右
6 大小关系运算 左到右
7 相等关系运算 左到右
8 按位与运算 左到右
9 按位或运算 左到右
10 按位或 左到右
11 逻辑与运算 左到右
12 逻辑或运算 左到右
13 三木条件运算 左到右
14 赋值运算  右到左
回复 使用道具 举报
8047107 发表于 2013-6-25 16:16
哦 明白了. 不知道你看了别人发的一个帖子没
int j=0;
for (int i =0;i

这个题很有意思,我也想知道怎么回事?建议楼主可以另发一贴。
回复 使用道具 举报
8047107 发表于 2013-6-25 16:16
哦 明白了. 不知道你看了别人发的一个帖子没
int j=0;
for (int i =0;i

这个题很有意思,我也想知道怎么回事?建议楼主可以另发一贴。
回复 使用道具 举报
版主改成以解决把!
回复 使用道具 举报
11.。 i += i-1相当于 i= i+(i-1);的简写吧
回复 使用道具 举报
i +=i-1;等价于i=i+i-1=6+6-1=11;
回复 使用道具 举报
:)看看学习学习
回复 使用道具 举报
答案是11
回复 使用道具 举报
i += i-1
就是i=i+i-1;
int i =6;
所以结果是11;
回复 使用道具 举报
hx32 高级黑马 2013-6-28 11:17:17
31#
8047107 发表于 2013-6-25 16:16
哦 明白了. 不知道你看了别人发的一个帖子没
int j=0;
for (int i =0;i

j++是赋值之后再+1,但是+1的结果没有使用,内存就释放掉了。
关键点在于内存的释放
回复 使用道具 举报
11
是从左往右算,"i+"=12
然后-1 =11   
回复 使用道具 举报
我猜答案是11..
回复 使用道具 举报
i = i+(i-1)吧
回复 使用道具 举报
应该相当于i=i+(i-1)
回复 使用道具 举报
11,还是通过编译运行得出,是优先级问题,学习的路子太长了
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马