在 C++ 中,「==」及「!=」是等值運算符,而「<」、「 >」、「<=」及「>=」是關係運算符。
C++ 中的運算符 | 運算 | C++ 算式範例 | 等同的 Pascal 算式 |
== | 相等於 | a == b | a = b |
!= | 不相等於 | a != b | a <> b |
< | 少於 | a < b | a < b |
> | 多於 | a > b | a > b |
<= | 少於或相等於 | a <= b | a <= b |
>= | 多於或相等於 | a >= b | a >= b |
所有等值及關係運算符均為雙元運算符。
留意不要把「==」(相等於符號)和「=」(賦值符號)混淆。
(假設以下的 a 及 b 在 C++ 是數值類型,而在 Pascal 是布爾類型。)
C++ 的運算符 | 運算 | C++ 算式範例 | 等同的 Pascal 算式 |
&& | 邏輯 AND | a && b | a and b |
|| | 邏輯 OR | a || b | a or b |
! | 邏輯 NOT | !a | not a |
從上表得知,「&&」及「||」是雙元運算符, 而「!」是單元運算符,它的操作是在它的右邊。
下列各表說明了這些運算符的操作方式。
邏輯 AND (&&)
|
邏輯 OR (||)
|
邏輯 NOT (!)
|
C++ 沒有「布爾」這種數據類型。等值及關係數據類型回傳的值是 1(真)及 0(假)。一般來說,任何不是零的值均當作是「真」,而零會被當作是「假」看待。
條件運算符是一個三元運算符(一個可操作於三個操作數)。這算式的形式如下︰
<算式_1> ?
<算式_2> : <算式_3>
<算式_1> 永遠被優先執行。如果它回傳的值不是零(「真」),以上算式回傳 <算式_2> 所回傳的值;否則,該算式回傳的會是 <算式_3>。通常,這種算式可以被當為以下的情形︰
"If <算式_1> then <算式_2> else <算式_3>."
這個意思是說使用了條件運算符的語句可以被 if-else 控制結構 代替。
看看以下程序作為例子︰
#include <iostream.h> main() { int x, y, min; cout << "Enter x: "; cin >> x; cout << "Enter y: "; cin >> y; min = (x < y ? x : y); cout << x << (x > y ? " > " : " <= ") << y << endl; cout << min << " is the smaller number." << endl; return 0; } |
輸出範例一(紅色的文字由使用者輸入)︰ |
Enter x: 10 Enter y: 5 10 > 5 5 is the smaller number. |
輸出範例二(紅色的文字由使用者輸入)︰ |
Enter x: 4 Enter y: 7 4 <= 7 4 is the smaller number. |
min = (x < y ? x : y);
如果 x 少於 y,算式「x <
y」就是真的(即其回傳值不是零)以及 min 會被賦予 x
的值。
如果 x 多於或相等於 y,算式「x < y」就是假的(即其回傳值為零),以及
min 會被賦予 y 的值。
x > y ? " > " : " <= "
如果 x 多於 y,算式「x >
y」就是真的,上列算式會回傳「 > 」。
如果 x 少於或等於 y,算式「x > y」就是假的,上列算式會回傳「 <= 」。