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將始終遞增。 –