3.1 布林型態
程式做決策需要一種方式表達「真」和「假」。在 C++ 中,我們用 bool(布林)型態來表示這兩個值。
bool flag = true; // 宣告一個布林變數,值為「真」
bool result = false; // 宣告一個布林變數,值為「假」
bool 只有兩種可能值:
true:真(1)false:假(0)
當我們用 cout 輸出布林值時,預設會輸出 1 或 0:
#include <iostream>
using namespace std;
int main() {
bool is_pass = true;
bool is_fail = false;
cout << is_pass << endl; // 輸出:1
cout << is_fail << endl; // 輸出:0
return 0;
}
執行結果
1
0
¶用 boolalpha 輸出 true/false
有時候我們想讓布林值印成 true 和 false 的字面意思,而不是 1 和 0。這時可以用 boolalpha。
在看程式碼之前,要先釐清一個很容易誤會的地方:cout << boolalpha; 這一行並不是在「印東西」。
在第一、二單元裡,你看到的 cout << 某個值 都是「把那個值印到螢幕上」。但 boolalpha 不是一個要被印出來的值,而是一個操縱符(manipulator)——你可以把它想成一個交給 cout 的設定開關,意思是:「從現在開始,布林值請印成 true / false,不要再印 1 / 0。」
所以執行 cout << boolalpha; 時,螢幕上不會出現任何字,它只是改變了 cout 接下來的顯示方式。這裡的 << 還是同一個符號,但作用從「印出一個值」變成了「把一項設定套用到 cout 上」。這個設定一旦打開,對後面每一次布林輸出都有效——來看下面的例子:
#include <iostream>
using namespace std;
int main() {
bool is_pass = true;
bool is_fail = false;
cout << boolalpha; // 這行不印東西,只是在設定 cout
cout << is_pass << endl; // 輸出:true
cout << is_fail << endl; // 輸出:false
return 0;
}
執行結果
true
false
¶動手試試看
寫一個程式,宣告三個布林變數 morning、afternoon、evening,分別代表「是否是上午」「是否是下午」「是否是晚上」。用 boolalpha 輸出它們。