計算機概論:C/C++程式設計
|
第3章. 讓程式選擇與決定:流程控制 |
|
|
授課教師:陳慶瀚 WWW : http://www.miat.ee.isu.edu.tw/cpp E-mail : pierre@isu.edu.tw |
|
3.7 switch-case陳述 基本上,if陳述可以應用在所有的條件判斷的情況。但是如果針對單一運算式的差異性條件判斷問題,switch-case語法提供了一個理想的陳述方式。它的標準型式如下:
switch ( 判斷變數 ) {
case 變數值1:
陳述1;
break;
case 變數值2:
陳述2;
break;
......
default:
陳述N;
} 在上面語法中,每一個case最後都需包含關鍵字break,注意到最後有一個default的宣告,當所有的case都沒有被啟動時(也就是所有預設的數值都不等於判斷變數值),則default內的陳述才會被啟動。 使用switch-case陳述有一些注意事項: l
case後的變數值必須是整數或是字元常數。 l
各個case陳述放置的順序並不重要,也就是不會影響條件判斷結果。 l
依一般程式慣例,default的宣告總是放置在case-switch的最後。 以下範例程式應用一個switch statement讓使用者輸入選擇,來模擬一個簡單的選擇目錄 /*------------------------------------------------------------------* //
範例程式3-12 //
Copyright (c) 陳慶瀚, 2001 /*------------------------------------------------------------------*
#include <iostream.h>
void main()
{
int menu, numb1, numb2, total;
cout<<"輸入兩個數值 -->";
cin>>numb1>>numb2;
cout<<"1=加法\n";
cout<<"2=減法\n";
cout<<"3=乘法\n";
cout<<"請輸入運算功能選項\n"; cin>>menu;
switch( menu )
{
case 1: total
= numb1 + numb2; break;
case 2: total
= numb1 - numb2; break;
case 3: total
= numb1 * numb2; break;
default: cout<<"無效的運算功能選項\n";
}
if( menu == 1 )
cout<<numb1<<" + "<<numb2<<" =
"<<total ;
else if( menu == 2 )
cout<<numb1<<" - "<<numb2<<" =
"<<total ;
else if( menu == 3 ) cout<<numb1<<"
* "<<numb2<<" = "<<total ;
} 範例程式輸出1
輸入兩個數值 --> 37 23
1=加法
2=減法
3=乘法 請輸入運算功能選項 :2
37 - 23 = 14 範例程式輸出2 輸入兩個數值 --> 5 8
1=加法
2=減法
3=乘法 請輸入運算功能選項 :8
無效的運算功能選項 以下範例程式,我們使用一個字變數元作為判斷變數,使用者從鍵盤輸入任意字元,case-switch將啟動其中一個case。 /*--------------------------------------------------------* //
範例程式3-13 //
Copyright (c) 陳慶瀚, 2001 /*-------------------------------------------------------*
void
main( ) { char
c; int
count=0; cout<<"請輸入一個字元-->"; cin>>c; switch(c)
{ case
'a': case
'e': case
'i': case
'o': case
'u': count++;
break;
default : count--; } cout<<"count="<<count<<endl; }
執行範例: 請輸入一個字元-->a count=0 請輸入一個字元-->u count=1 請輸入一個字元-->x count=-1 課堂練習3-7: 寫一個C++的程式,使用switch-case陳述,可以讓使用者輸入一個介於0-100的成績,如果分數小於60則輸出”fail!”,如果成績大於等於60且小於75則輸出”passed!”,如果成績大於等於75且小於90輸出”good”,如果成績大於等於90輸出”very good”。
|
||
計算機概論:C/C++程式設計 義守大學電機系 陳慶瀚 |