首页 新闻 会员 周边 捐助

初学者的小问题

0
[待解决问题]

int i=3;
i-=2;输出结果是1
i=-2;输出结果是-2
i-=2;是不是可以理解成i=i-2;
i=-2;是不是可以理解成i=0-2;
这是我的猜测有没有大神回复一个对或者不对啊

乔纳森乔瑟夫的主页 乔纳森乔瑟夫 | 菜鸟二级 | 园豆:204
提问于:2019-07-07 15:53
< >
分享
所有回答(6)
0

减号加号等于号,哪个在前面,先执行哪一个!i=-2,这个是赋值操作了,哪个-是负号不是减号,赋值操作会直接覆盖原值......

刘下来 | 园豆:919 (小虾三级) | 2019-07-07 15:59

多谢两位大神不过-2不也是因为0-2得来的吗?

支持(0) 反对(0) 乔纳森乔瑟夫 | 园豆:204 (菜鸟二级) | 2019-07-07 18:36

@乔纳森乔瑟夫: 不能这样理解,因为这个是负号,不是减号,概念不一样的,虽然你这样说结果是一样的,比如你写一个var a=3;下一行再写一个var a=5;那此时a的值为5,因为覆盖,你还可以百度一下js的变量提升、函数提升,那个你能弄懂了就能理解很多东西了

支持(0) 反对(0) 刘下来 | 园豆:919 (小虾三级) | 2019-07-07 22:20
0

i-=2 等价于 i=i-2;
i=-2 是直接赋值

一世红尘 | 园豆:321 (菜鸟二级) | 2019-07-07 16:00

多谢大神不过-2不也是由0-2得来的吗

支持(0) 反对(0) 乔纳森乔瑟夫 | 园豆:204 (菜鸟二级) | 2019-07-07 18:36
0

i=-2不是你理解的0-2      i=-2是直接给i赋值,相当于-2覆盖了原来的3

西红柿里没有番茄 | 园豆:645 (小虾三级) | 2019-07-08 09:29

哦谢谢大神

支持(0) 反对(0) 乔纳森乔瑟夫 | 园豆:204 (菜鸟二级) | 2019-07-08 10:53
0

i=-2错了,其他的都对,i=-2只是给i赋值了,和0-2没关系,1-3也是-2呢

小光 | 园豆:1766 (小虾三级) | 2019-07-08 14:21
0

int i=3;
i-=2;输出结果是1 (计算 )
i=-2;输出结果是-2 直接复制 (直接复制)
i-=2;是不是可以理解成i=i-2; (计算 )
i=-2;是不是可以理解成i=0-2; (直接复制)

-= ,+= 这叫运算符 == 表示判断 = 表示赋值

永远跟党走i | 园豆:1542 (小虾三级) | 2019-07-10 10:19
1

i=+0;
i-2=0-2;
i-=-2;
没问题

猝不及防 | 园豆:2878 (老鸟四级) | 2019-07-12 11:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册