關於or not and的優先級

邏輯運算符優先級應該是怎樣的,查了下是OR>AND>NOT,好把,我可能記住了。可是爲什麼是這樣,內心又起了疑問。。。。
從漢語意思上去理解這個邏輯
’和‘給人的感覺更像是一個連接號使左右兩邊成爲一個整體。
’或者‘就像一個蹺蹺板,連接了兩個物體。
‘不是’就像是一個貼紙,緊緊的貼住最近的物體。

所以
'或者‘的連接,就像總結,所以優先級很低
‘不是’很自然的與旁邊的物體融合,不然碰到’和’就會產生,他的兩邊只有一個物體,另一邊是‘不是’,所以‘不是’的優先級最高。
’和‘自然而然成了第二。

這樣理解只是輔助記憶,如果記不住,看最後一條。

當他們同時出現,從左至右運算。。。。。這個沒毛病

還有,在真正寫代碼的時候,還可以加上小括號的,這樣可以省事,而且讀起來,也很好讀。

那麼又有一個問題來了,程序的運算是按人理解的優先級運算的嗎?
這就要講有關AND 和OR 有幾個特性
如果AND前面是假,那麼後面無論是什麼,結果就是假,所以無論後面有沒有NOT都不不影響他的結果。那麼計算機會浪費這個計算資源嗎?肯定不會的。還有or,當or前面爲真,無論後面是啥都是真。
那麼程序運行的優先級是啥呢,按照理解的優先級來反推,首先是or的左邊,再是左邊裏and的左邊,所以計算機的運算優先級是從左到右運算。。。。這也太暴力了。
即使是這樣,我們寫代碼也是要按照之前的優先級寫。那麼之前的寫括號雖然會好讀,省事,可是會增加計算機的資源,雖然不多,可是很多的程序積累下來還是有點東西的,要講究臻至完美,能好點就好點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章