Skip to main content

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" 視為條件Apassword=="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