大綱目錄
||
的優先順序比關係運算子低
c++規定,||
運算子是乙個順序點。也就是說,先修改左面的值,再對右面的值進行判定
c++11的說法是,運算子左面的子表示式優於右面的子表示式
i++
<
6|| i == j
i
原來的值為10
,則在對i
和j
進行比較時,i
的值將為11
另外,如果左面的表示式為true
,那麼c++將不會判定右面的表示式!!!
#include
intmain()
#include
intmain()
elseif(
'n'== ch ||
'n'== ch)
else
return0;
}
由於程式只讀取乙個字元,因此只讀取相應的第乙個字元,對於輸入的yeeeeeeeeeeeee
程式只讀取y
。然而,如果程式後面再讀取輸入時,將從e
開始讀取&&
的優先順序比關係運算子低
另外,如果左面的表示式為false
,那麼c++將不會判定右面的表示式!!!
#include
intmain()
#include
#include
bool
is_int
(double);
intmain()
cout <<
"你輸入了正確的數字:"
如果給讀取int
值的程式輸入乙個過大的值,很多c++實現只是將這個值截短為合適的大小,並不會通知丟失了資料。
上述中的程式避免了這樣的問題,它首先將可能的int
值作為double
值來讀取。
double
型別的精度足以儲存典型的int值,且取值範圍更大。
另一種選擇是,使用long long
來儲存輸入的值,因為其取值範圍比int
大。
c++邏輯運算子||
和邏輯運算子&&
的優先順序都低於關係運算子
x >
5&& x <
10
被解釋成
(x >5)
&&(x <
10)
!運算子的優先順序高於所有的關係運算子和算術運算子,因此要對表示式求反,必須用括號將其括起來
!
(x >
5)
而!x > 5
被解釋成(!x) > 5
,這個表示式總是false
,因為!x
的值只能為true
或false
,而它們將被轉換為1
或0
邏輯&&
運算子的優先順序總是高於||
age >
30&& age <
45|| weight >
300
被解釋成
(age >
30&& age <45)
|| weight >
300
也就是說乙個條件age
位於31
~45
,另乙個條件是weight
大於300
識別符號and
、or
、not
都是c++保留字,不能用作變數名,不是關鍵字
運算子另一種表示方式
&&
and
||
or
!
not
邏輯表示式
1.比較表示式只能描述1個條件 2.邏輯表示式可以描述多個條件,並且使用邏輯運算子來指定多個條件之間的關係 符號含義 與 ll或 非 邏輯與表示式 邏輯與 由 連線起來的邏輯表示式,只要當兩邊的條件都成立的時候,整個邏輯表示式猜成立,只要有一邊的條件不成立,那麼整個邏輯表示式都不成立 表示式結果 1...
邏輯表示式
我們知道,在c c 中,邏輯真與邏輯假分別用1和0來表示。現在,請定義logical類來表示乙個邏輯表示式。包括 1.2個int型別的屬性a和b,1個char型別的屬性op,其中a和b只能為0或1,是邏輯表示式的2個運算元 op是 四種運算子之一,分別表示異或 同或 與 或。2.建構函式logica...
javascript 邏輯表示式
1.邏輯與 運算子首先計算左運算元的值,即首先計算 左側表示式。如果計算結果是假值,那麼整個表示式的結果一定也是假值,因此 這時簡單地返回左運算元的值,而不會對右運算元進行計算。反過來講,如果左運算元是真值,那麼整個表示式的結果則依賴於右運算元的值,如果右運算元是真值,那麼整個表示式的值一定是真值 ...