計算機概論:C/C++程式設計

 

3. 讓程式選擇與決定:流程控制

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/cpp

E-mail : pierre@isu.edu.tw   

 


3.2複合條件判斷的if陳述

多重條件判斷的運算式可以使用邏輯運算子將個別條件判斷的運算式串接起來,成為一個複合條件判斷的運算式,例如:

    if (age > 6)

if(age < 12)

        cout<<"小學生";

當第一個條件判斷的運算式if(age > 6)true,而且第二個條件判斷的運算式if(age > 12)true,則輸出"小學生",這兩個條件判斷的運算式可以結合成複合條件判斷的if陳述:

if((age > 6)&&(age < 12))

    cout<<"小學生";

其中我們使用了&&運算子來結合兩個運算式,&&是一個邏輯運算子(Logical operator),它的功能是將兩個運算式結果作一邏輯AND運算,也就是當兩個運算式均為true時,則複合條件運算式為true

C++提供了三種邏輯運算子,如表3.2所示。

3.2 C++的邏輯運算子

邏輯關係

邏輯運算子

邏輯運算式範例

意義

Logical OR

||

(exp1) || (exp2)

如果expr1expr2TRUE

Logical AND

&&

(exp1) && (exp2)

如果expr1expr22都為TRUE

Logical NOT

!

!(exp)

如果expTRUE,則傳回FALSE

expFALSE,則傳回TRUE

 

/*----------------------------------------------------*/

//                  範例程式3-5

//                 

/*----------------------------------------------------*/

    #include <iostream.h>

    void main()

    {

        char input;

        cout<<"請輸入Yes(Y)No(N):";

        cin>>input;

if ((input == 'Y') || (input == 'y'))

     cout << "Good!\n"; 

    }

程式輸出範例

    請輸入Yes(Y)No(N): y

    Good!

上述例子使用了一個OR邏輯運算子(Logical OR operator)||去判斷是否輸出"Quit"字串。只要input是大寫的"Y"或小寫的"y",程式都將輸出"Good!"

/*----------------------------------------------------*/

//                  範例程式3-6

//                 

/*----------------------------------------------------*/

    #include <iostream.h>

    void main()

    {

        int temp;

        cout<<"輸入現在室溫:";

        cin>>temp;

        if((temp>18)&&(temp<28))

        {

            cout<<"舒適的室溫!\n";

        }

    }

程式輸出範例

    輸入現在室溫: 20

    舒適的室溫!

這個程式的第13行使用AND運算子來結合兩個比較運算式(temp>18)(temp<28),必須要兩個比較運算式均為TRUE,則AND邏輯運算結果才會為TRUE。雖然我們可以把這行程式碼寫成

if(temp>18 && temp<28)

也就是忽略兩個比較運算式的小括號,並不會影響最後結果,但我們仍然建議在任何多重條件判斷的if陳述中,為所有比較運算式加上小括號,以便讓日後自己或其他的程式閱讀者可以清晰分辨比較或邏輯運算的先後順序。

邏輯NOT運算子!是單一運算元(unary operand)的運算子, 不像ANDOR運算子用到兩個運算元(例如temp>18的兩個運算元分別是temp18)。如果某一運算式為true,將該運算式前加上NOT運算子,則結合NOT運算子後的運算式就會成為false。例如

/*----------------------------------------------------*/

//                  範例程式3-7

//                 

/*----------------------------------------------------*/

    #include <iostream.h>

    void main()

    {

int x=7;

cout<<(x==7)<<endl; //輸出1

cout<<!(x==7)<<endl; //輸出0

    }


課堂練習3-2

設計一個程式,讓使用者輸入一個整數值,如果該整數既無法被5整除,也無法被4整除,則輸出"ok"(請使用NOT運算子)


 

計算機概論:C/C++程式設計

義守大學電機系 陳慶瀚 
2001.10.15