int i=3;
i-=2;输出结果是1
i=-2;输出结果是-2
i-=2;是不是可以理解成i=i-2;
i=-2;是不是可以理解成i=0-2;
这是我的猜测有没有大神回复一个对或者不对啊
减号加号等于号,哪个在前面,先执行哪一个!i=-2,这个是赋值操作了,哪个-是负号不是减号,赋值操作会直接覆盖原值......
多谢两位大神不过-2不也是因为0-2得来的吗?
@乔纳森乔瑟夫: 不能这样理解,因为这个是负号,不是减号,概念不一样的,虽然你这样说结果是一样的,比如你写一个var a=3;下一行再写一个var a=5;那此时a的值为5,因为覆盖,你还可以百度一下js的变量提升、函数提升,那个你能弄懂了就能理解很多东西了
i-=2 等价于 i=i-2;
i=-2 是直接赋值
多谢大神不过-2不也是由0-2得来的吗
i=-2不是你理解的0-2 i=-2是直接给i赋值,相当于-2覆盖了原来的3
哦谢谢大神
i=-2错了,其他的都对,i=-2只是给i赋值了,和0-2没关系,1-3也是-2呢
int i=3;
i-=2;输出结果是1 (计算 )
i=-2;输出结果是-2 直接复制 (直接复制)
i-=2;是不是可以理解成i=i-2; (计算 )
i=-2;是不是可以理解成i=0-2; (直接复制)
-= ,+= 这叫运算符 == 表示判断 = 表示赋值
i=+0;
i-2=0-2;
i-=-2;
没问题