3.3 複合條件判斷式
搭配使用邏輯運算子
底下是一個典型的帳密驗證程式片斷。
string id, password;
cin >> id;
cin >> password;
if(id=="admin")
{
if(password=="123456")
{
cout << "登入成功" << endl;
}
else
{
cout << "登入失敗" << endl;
}
}
else
{
cout << "登入失敗" << endl;
}
因為「帳號正確」、「密碼正確」兩者皆需成立,所以使用了二層 if...else 敘述,看起來很累贅。
And 邏輯運算子 &&
「帳號正確」而且「密碼正確」可以這樣表示。
string id, password;
cin >> id;
cin >> password;
if(id=="admin" && password=="123456")
{
cout << "登入成功" << endl;
}
else
{
cout << "登入失敗" << endl;
}
邏輯運算子可以對 布林值(boolean) 進行運算。
我們把 id=="admin" 視為條件A,password=="123456 視為條件B
條件A 的運算結果有兩種可能 ture, false。條件B 也是一樣。所以 A and B 有四種可能狀況,表列如下。
| A | B | A && B |
|---|---|---|
| false | false | false |
| false | true | false |
| true | false | false |
| true | true | true |
這種表叫做 「真值表(truth table)」 ,可以表示某個邏輯運算的各種狀態和運算結果,我們也很常用 0 表示 false,用 1 表示true。
| A | B | A && B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |