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

 

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

 

 


授課教師:陳慶瀚

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

E-mail : pierre@isu.edu.tw   

 


3.4巢狀if-else陳述(Nested if-else)  

 

巢狀if-else陳述指的是一個if陳述中包含了至少又一個if陳述。來看下面例子: 

if(vel > 60)

if(vel<100) cout<<"標準的車速!";

else

cout<<"太慢了!"; 

在第一個條件(vel>60)滿足時,程式將執行第二個條件陳述if(vel<100),若判斷式為TRUE,則輸出"標準的車速!";如果第一個條件為FALSE,則其將不會執行第二個條件陳述,就算第二個條件判斷式為TRUE也沒有作用,程式會直接跳至else的執行陳述。

 

雖然上述的語法是正確的,但是程式的寫作風格並不理想,因為一旦改變上例的排版方式如下(這種情形隨時都可能發生)

if(vel > 60)

if(vel<100) cout<<"標準的車速!";

else

cout<<"太慢了!"; 

則我們一不小心就會以為else是接第2行的if(vel<100)而產生程式邏輯的誤判。有兩種改善的方法,第一種方法是使用大括符{}明顯區隔:

if(vel > 60)

{

if(vel<100)

cout<<"標準的車速!";

    }

else

{

cout<<"太慢了!"; 

    }

另一種方法是將兩個條件陳述結合成為一個複合條件判斷的if陳述:

if((vel > 60) && (vel<100))

cout<<"標準的車速!";

else

cout<<"太慢了!"; 


課堂練習3-4

寫一個C++程式,讓使用者輸入身高,如果身高小於150,則輸出「你不適合打籃球!身高不符。」,否則再讓使用者輸入體重,若體重大於100,則程式輸出「你不適合打籃球! 體重太重了!」, 否則輸出「恭喜你通過籃球隊員甄選!」


 

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

義守大學電機系 陳慶瀚 
2001.10.15