
C++ 的關係運算子 (relational operator) 都需要兩個運算元,包含小於、小於等於、大於、大於等於,另外有兩個測試相等性的運算子,運算結果會是 bool 型態的數值,不是 true 就是 false
| 運算子 | 功能 | 範例 |
|---|---|---|
| < | 小於 | a < b |
| <= | 小於等於 | a <= b |
| > | 大於 | a > b |
| >= | 大於等於 | a >= b |
| == | 相等 | a == b |
| != | 不等 | a != b |
關鍵字 eq 的用法如同 == , not_eq 的用法如同 != 。
以下為整數型態做關係及相等性運算的例子
| 001 | #include <iostream> |
| 002 | |
| 003 | #int main() { |
| 004 | int a = 12; |
| 005 | int b = 22; |
| 006 | |
| 007 | if (a < b) { |
| 008 | std::cout << "a < b" |
| 009 | << std::endl; |
| 010 | } |
| 011 | |
| 012 | if (a <= b) { |
| 013 | std::cout << "a <= b" |
| 014 | << std::endl; |
| 015 | } |
| 016 | |
| 017 | if (a > b) { |
| 018 | std::cout << "a > b" |
| 019 | << std::endl; |
| 020 | } |
| 021 | |
| 022 | if (a >= b) { |
| 023 | std::cout << "a >= b" |
| 024 | << std::endl; |
| 025 | } |
| 026 | |
| 027 | if (a == b) { |
| 028 | std::cout << "a == b" |
| 029 | << std::endl; |
| 030 | } |
| 031 | |
| 032 | if (a != b) { |
| 033 | std::cout << "a != b" |
| 034 | << std::endl; |
| 035 | } |
| 036 | |
| 037 | return 0; |
| 038 | } |
| 039 | |
| 040 | /* Kaiching Chang |
| 041 | u0403_1.cpp |
| 042 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0403_1.cpp |
| $ ./a.out |
| a < b |
| a <= b |
| a != b |
| $ |
以下為浮點數型態做關係及相等性運算的例子
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | double a = 22.0; |
| 005 | double b = 22.0; |
| 006 | |
| 007 | if (a < b) { |
| 008 | std::cout << "a < b" |
| 009 | << std::endl; |
| 010 | } |
| 011 | |
| 012 | if (a <= b) { |
| 013 | std::cout << "a <= b" |
| 014 | << std::endl; |
| 015 | } |
| 016 | |
| 017 | if (a > b) { |
| 018 | std::cout << "a > b" |
| 019 | << std::endl; |
| 020 | } |
| 021 | |
| 022 | if (a >= b) { |
| 023 | std::cout << "a >= b" |
| 024 | << std::endl; |
| 025 | } |
| 026 | |
| 027 | if (a == b) { |
| 028 | std::cout << "a == b" |
| 029 | << std::endl; |
| 030 | } |
| 031 | |
| 032 | if (a != b) { |
| 033 | std::cout << "a != b" |
| 034 | << std::endl; |
| 035 | } |
| 036 | |
| 037 | return 0; |
| 038 | } |
| 039 | |
| 040 | /* Kaiching Chang |
| 041 | u0403_2.cpp |
| 042 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0403_2.cpp |
| $ ./a.out |
| a <= b |
| a >= b |
| a == b |
| $ |
字元型態可依 ASCII 編碼順序,也就是各編碼代表的整數值進行關係運算或相等性測試,如
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | char a = 't'; |
| 005 | char b = 'r' + 2; |
| 006 | |
| 007 | if (a < b) { |
| 008 | std::cout << "a < b" |
| 009 | << std::endl; |
| 010 | } |
| 011 | |
| 012 | if (a <= b) { |
| 013 | std::cout << "a <= b" |
| 014 | << std::endl; |
| 015 | } |
| 016 | |
| 017 | if (a > b) { |
| 018 | std::cout << "a > b" |
| 019 | << std::endl; |
| 020 | } |
| 021 | |
| 022 | if (a >= b) { |
| 023 | std::cout << "a >= b" |
| 024 | << std::endl; |
| 025 | } |
| 026 | |
| 027 | if (a == b) { |
| 028 | std::cout << "a == b" |
| 029 | << std::endl; |
| 030 | } |
| 031 | |
| 032 | if (a != b) { |
| 033 | std::cout << "a != b" |
| 034 | << std::endl; |
| 035 | } |
| 036 | |
| 037 | return 0; |
| 038 | } |
| 039 | |
| 040 | /* Kaiching Chang |
| 041 | u0403_3.cpp |
| 042 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0403_3.cpp |
| $ ./a.out |
| a <= b |
| a >= b |
| a == b |
| $ |
布林型態的變數也可以做關係相等性測試,注意布林值屬於算術型態 (arithmetic type) ,因此 true 類似整數 1 ,而 false 類似整數 0 。範例程式如下
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | bool a = true; |
| 005 | bool b = false; |
| 006 | |
| 007 | if (a < b) { |
| 008 | std::cout << "a < b" |
| 009 | << std::endl; |
| 010 | } |
| 011 | |
| 012 | if (a <= b) { |
| 013 | std::cout << "a <= b" |
| 014 | << std::endl; |
| 015 | } |
| 016 | |
| 017 | if (a > b) { |
| 018 | std::cout << "a > b" |
| 019 | << std::endl; |
| 020 | } |
| 021 | |
| 022 | if (a >= b) { |
| 023 | std::cout << "a >= b" |
| 024 | << std::endl; |
| 025 | } |
| 026 | |
| 027 | if (a == b) { |
| 028 | std::cout << "a == b" |
| 029 | << std::endl; |
| 030 | } |
| 031 | |
| 032 | if (a != b) { |
| 033 | std::cout << "a != b" |
| 034 | << std::endl; |
| 035 | } |
| 036 | |
| 037 | return 0; |
| 038 | } |
| 039 | |
| 040 | /* Kaiching Chang |
| 041 | u0403_4.cpp |
| 042 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0403_4.cpp |
| $ ./a.out |
| a > b |
| a >= b |
| a != b |
| $ |
continue ...
沒有留言:
張貼留言