C++ bool類型入門:布爾值與邏輯判斷實戰

在編程中,我們經常需要判斷“條件是否成立”,比如“今天下雨了嗎?”“密碼是否正確?”。C++中的bool類型專門用來表示這種“是”或“否”的結果,是邏輯判斷的核心。本文將從基礎概念開始,通過簡單例子帶你掌握bool類型的使用。

一、什麼是bool類型?

bool(布爾)類型是C++中最小的數據類型之一,只能存儲兩個值true(真)或false(假)。
- true表示條件成立,false表示條件不成立。
- truefalse是C++的關鍵字,必須小寫(不能寫成TrueFalse,否則會報錯)。

聲明與賦值

使用bool類型非常簡單,只需聲明變量並賦值truefalse

bool isRaining = false;  // 沒下雨
bool hasAccount = true;  // 有賬戶

也可以通過邏輯表達式賦值(邏輯表達式的結果就是bool類型):

bool isAdult = (18 >= 18);  // 18歲及以上,結果爲true
bool isEven = (4 % 2 == 0); // 4是偶數,結果爲true

二、爲什麼需要bool類型?

在早期C語言中,常用int類型的01表示“假”和“真”,但這樣容易混淆(比如不清楚1代表什麼)。而bool類型的優勢在於:
- 直觀:直接用true/false表達意圖,代碼可讀性更強。
- 安全:編譯器會檢查類型合法性,避免誤用(比如誤將字符串賦值給bool)。

三、邏輯運算符與bool類型

bool類型的核心用途是邏輯判斷,而邏輯判斷依賴於以下運算符:

1. 比較運算符(返回bool結果)

用於比較兩個值是否滿足條件,結果爲truefalse
| 運算符 | 含義 | 例子 | 結果 |
|--------|------------|--------------------|--------|
| == | 等於 | 5 == 5 | true |
| != | 不等於 | 5 != 3 | true |
| > | 大於 | 10 > 20 | false |
| < | 小於 | 3 < 5 | true |
| >= | 大於等於 | 5 >= 5 | true |
| <= | 小於等於 | 2 <= 0 | false |

2. 邏輯運算符(組合多個條件)

用於組合多個bool條件,結果仍爲bool類型:
| 運算符 | 含義 | 規則(A和B爲操作數) | 例子 | 結果 |
|--------|------------|----------------------|--------------------------|------|
| && | 邏輯與 | A和B都爲true才返回true | (3>2) && (5<10) | true |
| || | 邏輯或 | A或B有一個爲true就返回true | (3>10) || (5<10) | true |
| ! | 邏輯非 | 取反(true變false,false變true) | !(3>5) | true |

示例:邏輯表達式

bool a = 5 > 3;       // true(5大於3)
bool b = (a && false); // false(a是true,右邊false,結果false)
bool c = (a || true);  // true(a是true,右邊true,結果true)
bool d = !c;          // false(c是true,取反後false)

四、實戰案例:用bool做條件判斷

通過具體場景練習bool的使用,比如判斷成績是否及格、控制開關狀態等。

案例1:判斷成績是否及格

#include <iostream>
using namespace std;

int main() {
    int score;
    cout << "請輸入分數:";
    cin >> score;

    // 60分及以上爲及格
    bool isPassed = (score >= 60);

    if (isPassed) {
        cout << "恭喜!你及格了!" << endl;
    } else {
        cout << "再接再厲,下次加油!" << endl;
    }

    return 0;
}

案例2:模擬燈的開關控制

#include <iostream>
using namespace std;

int main() {
    bool lightOn = true; // 初始燈是開着的

    cout << "燈當前狀態:" << (lightOn ? "開" : "關") << endl;

    // 按一次開關(邏輯取反)
    lightOn = !lightOn;
    cout << "按開關後狀態:" << (lightOn ? "開" : "關") << endl;

    return 0;
}

案例3:判斷用戶是否登錄

#include <iostream>
using namespace std;

int main() {
    bool isLoggedIn = false; // 初始未登錄

    if (isLoggedIn) {
        cout << "歡迎訪問會員中心!" << endl;
        // 執行會員操作...
    } else {
        cout << "請先登錄!" << endl;
        // 跳轉到登錄頁面...
    }

    return 0;
}

五、常見錯誤與注意事項

  1. 大小寫錯誤truefalse必須小寫,否則會報錯(如寫成TrueFalse)。
  2. 避免混用int和bool:雖然bool變量賦值1會被視爲true0視爲false,但推薦直接用true/false
  3. 比較vs賦值:判斷“等於”用==,而非賦值=(如if (score = 60)會導致邏輯錯誤)。
  4. 邏輯短路&&||有“短路特性”,比如(false && ...)會跳過後續判斷,避免無效計算。

六、總結

bool類型是C++邏輯判斷的基礎,通過true/false和邏輯運算符(>, <, &&, ||等),可以輕鬆實現條件分支(if-else)、循環控制等功能。掌握bool類型,能讓代碼更清晰、邏輯更嚴謹。

練習建議:嘗試用bool實現“判斷奇偶數”“判斷是否爲閏年”等小功能,加深理解。

小夜