運算子的優先順序
一般我們在撰寫程式時常常會用到運算子,比如"="、"AND"、"ANDALSO"等等;有時候不小心常常會在這部分發生一些錯誤,所以不知道是不行的,比如今天撰寫程式時就發生一個錯誤,像下面這樣 If MyByteArray(8) And &HF = 0 Then ... Else ... End If 這段是把我接收到的byte陣列中的一個抓出來,然後取低位元組來用(也就是bit0~bit3),判斷是不是0,是的話要做特殊的處理,結果執行時發現永遠不會成立,為什麼呢?查了MSDN之後原來"="運算子的優先權高於AND運算子,所以會先處理 &HF = 0 的部分結果當然是傳回0,之後是 MyByteArray(8) And 0 結果也會是0,再來就輪到IF了,IF 0會判定為False,所以我程式的動作就會異常了..T.T 解決的方式是 If (MyByteArray(8) And &HF) = 0 Then ... Else ... End If 所以還是要養成好習慣,該有括號的地方不要偷懶啊.. 相關參考 Visual Basic 中的運算子優先順序