Visual C++ 基礎篇 switch 判斷

switch是C++提供的條件判斷陳述式,它只能比較數值或字元,不過別以為這樣它就比if 來得沒用,使用適當的話,它可比if判斷式來得有效率。
switch的語法架構如下:
 
switch (變數名稱或運算式) { 
    case 符合數字或字元
        陳述句一; 
        break; 
    case 符合數字或字元
        陳述句二; 
        break; 
    default: 
        陳述三; 
}
範例一
讓使用者輸入字元,判定男女
#include <iostream>
using namespace std;
char main()
{
char ic;
cout << "請問您的性別是 ?(F/M)";
cin >> ic; //讀取使用輸入的字元

switch (ic)
{
case 'F': //判斷輸入的是否為F
cout << "您是男生!\n";
break;
case 'M': //判斷是否為M
cout << "您是女生!\n";
break;
default: //如果不是F或M則執行下面的程式區段
cout << "我無法判別? \n";
}
system("Pause");
return 0;
}

範例二
使用者輸入,國英數三科成績,判定等級(優、甲、乙、丙.....)
#include <iostream>
using namespace std;

int main()
{
int a,b,c,s,av,level=0;
cout << "成績評分系統"<< endl;
cout << "請問您的國,英,數,三科成績"<< endl;
cin >> a >> b >> c; //讀取使用輸入的字元
s = a + b + c;
av = s / 3;
level = av / 10;
cout << "國文:" << a << endl;
cout << "英文:" << b << endl;
cout << "數學:" << c << endl;
cout << "總分:" << s << endl;
cout << "平均:" << av << endl;

switch (level)
{
case 10:
case 9:
cout << "優等(您好棒棒)" << endl;
break;
case 8:
cout << "甲等(您考得不錯)" << endl;
break;
case 7:
cout << "乙等(快達到目標了)" << endl;
break;
case 6:
cout << "丙等(繼續加油)" << endl;
break;
case 5:
cout << "丁等(給您補考機會)" << endl;
break;
default:
cout << "明年再來吧!!" << endl;
}

system("Pause");
return 0;
}
範例三
問使用者兩個問題,並判定大小寫輸入及兩個問題後的結果判定(YY,YN,NY,NN)
#include <iostream>

using namespace std;

void main()
{

char a,b;
int c=0,d=0,s;
cout << "您會禿髮嗎?請回答下列兩個問題。" << endl;
cout << "請問您是油性皮膚嗎?(Y/N)" << endl;
cin >> a ;

switch (a)
{
case 'Y':
case 'y':
cout << "您是油性皮膚" << endl;
break;
case 'N':
case 'n':
cout << "您不是油性皮膚" << endl;
break;
default:
cout << "您輸入錯誤" << endl;
}

if (a == 'y' || a == 'Y')
{
c = 1;
}
else
{
c = 0;
}

cout << "請問您的上一代有禿髮嗎?(Y/N)" << endl;
cin >> b ;

switch (b)
{
case 'Y':
case 'y':
cout << "您上一代長輩有禿髮基因" << endl;
break;
case 'N':
case 'n':
cout << "您上一代長輩沒有禿髮基因" << endl;
break;
default:
cout << "您輸入錯誤" << endl;
}

if (b == 'y' || b == 'Y')
{
d = 2;
}
else
{
d = 0;
}


s = c + d;
cout << s << endl;
switch (s)
{
case 0:
cout << "不會有禿髮的可能" << endl;
break;
case 1:
cout << "您要常洗頭,可避免禿髮" << endl;
break;
case 2:
cout << "您有可能會禿髮" << endl;
break;
case 3:
cout << "您百分之百會禿髮" << endl;
break;
default:
cout << "我無法判斷" << endl;
}

system("Pause");

}
已邀請:

要回復主題請先登入註冊