C++ 快速導覽 - 關係運算

C++ 的關係運算子 (relational operator) 都需要兩個運算元 (operand) ,包含小於、小於等於、大於、大於等於,另外有兩個測試相等性的運算子,運算結果會是 bool 型態的數值,不是 true 就是 false

運算子功能範例
<小於a < b
<=小於等於a <= b
>大於a > b
>=大於等於a >= b
==相等a == b
!=不等a != b


以下為整數型態做關係及相等性運算的例子
#include <iostream>
 
int main(void)
{
    int a = 12;
    int b = 22;
    
    if (a < b) {
        std::cout << "a < b" << std::endl;
    }
    
    if (a <= b) {
        std::cout << "a <= b" << std::endl;
    }
    
    if (a > b) {
        std::cout << "a > b" << std::endl;
    }
    
    if (a >= b) {
        std::cout << "a >= b" << std::endl;
    }
    
    if (a == b) {
        std::cout << "a == b" << std::endl;
    }

    if (a != b) {
        std::cout << "a != b" << std::endl;
    }

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:relint.cpp
    功能:示範整數的關係及相等性運算
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



以下為浮點數型態做關係及相等性運算的例子
#include <iostream>
 
int main(void)
{
    double a = 22.0;
    double b = 22.0;
    
    if (a < b) {
        std::cout << "a < b" << std::endl;
    }
    
    if (a <= b) {
        std::cout << "a <= b" << std::endl;
    }
    
    if (a > b) {
        std::cout << "a > b" << std::endl;
    }
    
    if (a >= b) {
        std::cout << "a >= b" << std::endl;
    }
    
    if (a == b) {
        std::cout << "a == b" << std::endl;
    }

    if (a != b) {
        std::cout << "a != b" << std::endl;
    }

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:relfloat.cpp
    功能:示範浮點數的關係及相等性運算
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



字元型態可依 ASCII 編碼順序,也就是各編碼代表的整數值進行關係運算或相等性測試,如
#include <iostream>
 
int main(void)
{
    char a = 't';
    char b = 'r' + 2;
    
    if (a < b) {
        std::cout << "a < b" << std::endl;
    }
    
    if (a <= b) {
        std::cout << "a <= b" << std::endl;
    }
    
    if (a > b) {
        std::cout << "a > b" << std::endl;
    }
    
    if (a >= b) {
        std::cout << "a >= b" << std::endl;
    }
    
    if (a == b) {
        std::cout << "a == b" << std::endl;
    }

    if (a != b) {
        std::cout << "a != b" << std::endl;
    }

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:relchar.cpp
    功能:示範浮點數的關係及相等性運算
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



布林型態的變數也可以做關係相等性測試,注意布林值屬於算術型態 (arithmetic type) ,因此 true 類似整數 1 ,而 false 類似整數 0 。範例程式如下
#include <iostream>
 
int main(void)
{
    bool a = true;
    bool b = false;
    
    if (a < b) {
        std::cout << "a < b" << std::endl;
    }
    
    if (a <= b) {
        std::cout << "a <= b" << std::endl;
    }
    
    if (a > b) {
        std::cout << "a > b" << std::endl;
    }
    
    if (a >= b) {
        std::cout << "a >= b" << std::endl;
    }
    
    if (a == b) {
        std::cout << "a == b" << std::endl;
    }

    if (a != b) {
        std::cout << "a != b" << std::endl;
    }

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:relbool.cpp
    功能:示範布林值的關係及相等性運算
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



中英文術語對照
關係運算子relational operator
運算元operand
算術型態arithmetic type


您可以繼續參考
運算式
型態轉換


相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁


參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial

C++ Primer, Fourth Edition, Stanley B. Lippman...


本文於 2013 年 1 月更新

1 則留言:

匿名 提到...

版大您好,
小第是c++初學者,拜讀您的網站已久,想請問您
C++中if和while有何差別呢??