1 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
‘a(chǎn)nd’、‘or’和‘not’的優(yōu)先級(jí)是not>and>or
首先,‘a(chǎn)nd’、‘or’和‘not’的優(yōu)先級(jí)是not>and>or。
and :x and y 返回的結(jié)果是決定表達(dá)式結(jié)果的值。如果 x 為真,則 y 決定結(jié)果,返回 y ;如果 x 為假,x 決定了結(jié)果為假,返回 x。
or :x or y 跟 and 一樣都是返回決定表達(dá)式結(jié)果的值。
not : 返回表達(dá)式結(jié)果的“相反的值”。如果表達(dá)式結(jié)果為真,則返回false;如果表達(dá)式結(jié)果為假,則返回true。
其次,邏輯操作符and 和or 也稱(chēng)作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它們的參數(shù)從左向右解析,一旦結(jié)果可以確定就停止。
例如,如果A 和C 為真而B(niǎo) 為假, A and B and C 不會(huì)解析C,作用于一個(gè)普通的非邏輯值時(shí),短路操作符的返回值通常是最后一個(gè)變量。因此,邏輯運(yùn)算符的理解也與C語(yǔ)言中不同。舉個(gè)例子:
在以上例子中,按照C語(yǔ)言對(duì)的思維,3 and 4即3與4為3,但是由于是短路操作符,結(jié)果為4,是因?yàn)閍nd運(yùn)算符必須所有的運(yùn)算數(shù)都是true才會(huì)把所有的運(yùn)算數(shù)都解析,并且返回最后一個(gè)變量,即為4;改變一下順序4 and 3 ,結(jié)果也不一樣,即為3.
而或邏輯(or),即只要有一個(gè)是true,即停止解析運(yùn)算數(shù),返回最近為true的變量,即 3 or 4,值為3;改變順序4 or 3 即為4.
添加回答
舉報(bào)