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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

设有定义int i=6,则执行以下语句后,i的值为( );
i +=i-1;
回复以后看正确答案哈.不过我看不懂....
游客,如果您要查看本帖隐藏内容请回复


35 个回复

倒序浏览
11                    
回复 使用道具 举报

嗯 怎么计算的啊?
回复 使用道具 举报

从左到右的顺序?先执行 i+=i  
i=12 了  然后再减一  就是11啦? 就这样?
回复 使用道具 举报
11,i+=i-1相当于i=i+i-1
i+=就是i=i+
回复 使用道具 举报
8047107 发表于 2013-6-25 16:07
从左到右的顺序?先执行 i+=i  
i=12 了  然后再减一  就是11啦? 就这样?

+=相当于一个赋值语句,从定义上和=差不多,只是在赋值的同时,它会将左边的数与右边的数相加然后再赋值给左边的变量,这个动作是自动完成的。
所以先i-1,然后i+(i-1)结果。。。。。。。。。。
回复 使用道具 举报
神之梦 发表于 2013-6-25 16:11
+=相当于一个赋值语句,从定义上和=差不多,只是在赋值的同时,它会将左边的数与右边的数相加然后再赋值 ...

哦 明白了. 不知道你看了别人发的一个帖子没
int j=0;
for (int i =0;i<100;i++)
{
  j=j++;
}
然后打印j的值是0~~~
如果只循环一次的话还好理解.j最开始=0.循环里面是先赋值再自增,第一次打印的肯定是0,但是循环结束后 j不是自增为1了么.怎么一直都是0
那个帖子有人给了一个内存图 但是看不太明白 而且看他的图好像是先自加再赋值的~~~~
回复 使用道具 举报
8047107 发表于 2013-6-25 16:16
哦 明白了. 不知道你看了别人发的一个帖子没
int j=0;
for (int i =0;i

继续找那人让他给你解释
他那说法确实是正确的
我以前也问过类似的问题,你我看以前自增问题的帖,有位大牛用反汇编弄过,
这是java的不同之处吧,具体怎么搞的我不是特别明白,也解释不清
如果你不想去懂内存开辟的啥问题的话,你只要记住,这样的等式:
你可以这样理解,就J=j++而言,我们知道j++是先赋值再自增,所以一开始的时候是自增前的值赋值给了j,
然后j的值就保存在了主内存中,而后又开辟了一个新内存用来运算j++,但因为已经赋值过了
所以j++的那片内存就等于无用功,没起作用,自动释放,所以j的值就一直是原来的值。
以上纯属个人理解,如有不妥望指出
回复 使用道具 举报 1 0
神之梦 发表于 2013-6-25 16:26
继续找那人让他给你解释
他那说法确实是正确的
我以前也问过类似的问题,你我看以前自增问题的帖,有位大 ...

嗯不错 有点可以理解了
回复 使用道具 举报
11            
回复 使用道具 举报
答案是:2i-1,么
回复 使用道具 举报
次句子可以理解为
i=i+(i-1);
回复 使用道具 举报
public static void main(String[] args) {
        int i =6;
        System.out.println(i+=i-1);
}

结果11 ,应该是先算+=  6+6= 12  再-1吧。
回复 使用道具 举报
刘_鑫 发表于 2013-6-25 18:22
public static void main(String[] args) {
        int i =6;
        System.out.println(i+=i-1);

额 大家说的是先计算+=右边的 即 i-1 先计算   6+5=11
回复 使用道具 举报
回个贴又不会怀孕

评分

参与人数 1黑马币 +12 收起 理由
8047107 + 12 恭喜你怀孕了!

查看全部评分

回复 使用道具 举报
11

难道是 肖同学{:soso_e141:}
回复 使用道具 举报
i=i+(i-1)     答案是11
回复 使用道具 举报
我来看看
回复 使用道具 举报
结果为11
因为这个语句整体是从等号左右分开,左边加右边将和赋给左边,然后右边是i-1为5,i=6,然后执行左边加右边赋给左边,所以结果为6

不知道楼楼能看明白不
回复 使用道具 举报
搂主,,就是这样了

秒懂了吧!

int i;

i +=(+=) -1;
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马