3
A
回答
6
首先你要咨询的语言规范,实现什么样的操作顺序在这里。带括号的推出,这将是:
a += (b != (a & 1))
的a & 1
是按位与(使它1
如果a
是奇数和0
其他),那么它的结果相比,b
和这个结果是布尔将被添加到a
。当然,最新的有意义的a
需要是一种可以支持的类型(例如,通过将True
的值设为1
和False
的值为0
),该类型可以支持该类型。
概括起来讲,如果b==0
会增加a
如果a
甚至如果b==1
会增加a
如果a
是奇数。否则,如果b
既不是0
也不是1
它将增加a
。
我注意到,一些意见没有注意到的优先顺序,甚至蟒蛇,他们有时会混淆(特别是如果你已经被那些由C混淆)。作为一个经验法则,我建议你明确地在子表达式的周围放置圆括号,如果你是最微弱的怀疑 - 甚至在分离的状态下分解它。通常情况下,编译器无论如何都会做到最好。
相关问题
- 1. SUM(a * b)做什么?
- 2. 任何pythonic方式做“[['a',2],['b',1]] + [['b',2],['c',1]] = [['b',3 ],['a',2],['c',1]]“?
- 3. (a == b?c:d)是做什么的?
- 4. 为什么a,b = 1不允许?
- 5. d.update(dict(a = 1,b = 2))和d.update(dict('a'= 1,'b'= 2)之间有什么区别)
- 6. int b = 0,a = 1; b = ++ a + ++ a; b的价值是什么?它的计算是什么?
- 7. A == B对B == A,有什么区别
- 8. 什么是A&B代表.Aggregate((a,b)=>声明w/a&b)
- 9. 为什么a.compareTo(b)等于compareTo(a,b)或a.method(b)= method(a,b)?
- 10. 这段代码是做什么的? a =(a == b)? c:b;
- 11. a + = b和a = + b之间的区别是什么,a ++和++ a?
- 12. 如果有2个矩阵a和b,a(b)在matlab中做什么?
- 13. 为什么“{1:'a',True:'b',1.0:'c',1.00:'d'}”评估为“{1:'d'}”?
- 14. 什么`\ X1B(B`做
- 15. a,b = b,a + b和a = b,b = a + b在fibonacci中的区别是什么[Python]
- 16. 为什么有A = A +之间的差异B和A + = B
- 17. 为什么“a &&(b = 5/a)”将“5/a”分配给“b”?
- 18. a = a + b和a + = b之间的区别是什么?
- 19. 如何在精益中证明a = b→a + 1 = b + 1?
- 20. 为什么var c =“a”|| “b”返回c =“a”和var c =“a”&&“b”返回c =“b”?
- 21. Tcl [list a b c] vs {a b c}有什么区别,在什么情况下?
- 22. 为什么A - B + B!= A使用PHP DateTime和DateInterval?
- 23. 为什么(A - B)。^ 2在MATLAB中不等于(B - A)。^ 2?
- 24. a // b和int(a/b)之间有什么区别?
- 25. Ruby中的object.method(a,b)和方法(a,b)有什么区别
- 26. #define,EQ(a,b)((a)==(b))是什么意思?
- 27. * a = b和a =&b之间的区别是什么?
- 28. 理解为什么A/B不工作,但fromInteger A/fromInteger B则
- 29. MatLab中的[A,B]和[A; B]有什么区别?
- 30. a [:] = b和a = b之间的区别是什么?
代码有什么影响?尝试使用一些值,例如'a
@PeterWood我已经更新了答案,'a'和'b'之间的关系是不相关的。相关的条件是“a”是偶数还是奇数,如果“b”是“0”还是“1”(或别的什么)。 – skyking
如果b不等于0或1,a将始终递增。 –