UID320416
帖子
精華
主題
積分14
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限5
註冊時間2013-3-25
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 怒 2013-11-14 10:06 PM |
---|
簽到天數: 11 天 連續簽到: 1 天 [LV.3]偶爾看看II
|
接續上次之第一張簡單基礎教學後,決定發表第二張,使用之教材仍與第一章相同。
觀念:判斷式,即是我們一般生活中所說的”如果 ..... 就”,”否則 ....... 就”,”或是 ...... 就”。
當我們在設計一個程式時,幾乎常常會用到這個 if - else 判斷式,而判斷式總是要搭配一個”條件式”。
何謂條件式?
例如,我今天欠王同學 10 元,而今天王同學問我是不是欠他 20 元,結果當然是不是,我就要說”NO”
但是假設今天是的話呢,我就要說”YES”,那我該如何將這整段事情寫成程式呢?
這就是我們今天要學的,簡單判斷式以及IO應用。
其程式碼格式一般為:
if ( 條件式 ) { /* 程式碼 */ }
若包含”其他邏輯(全)”
則在尾端加入:
else { /* 程式碼 */ }
但若其他邏輯包含了”或”,則:
else if ( 條件式 2 ) { /* 程式碼 */ }
有包含條件式的判斷句必須當條件成立時,才會執行括號中的程式碼,若您的程式碼內包含多重判斷 ( else - if ) 則會一一執行比對。
程式實作:
/* 引入表頭檔以及命名空間操作部分省略 */
int money = 50 , feel = 0; // 宣告 money 為阿王所欠的錢 feel 為你個人覺得他欠多少
cout << "你覺得阿王欠你多少?" ; // 此區為IO基本部分,若有不懂,請參考第一篇。
cin >> feel;
if ( feel > money ) { // 判斷式開始 如果 feel 大於 阿王欠的
cout << "不對,在少一點" ;
} else if ( feel < money ) { // 多重判斷式 如果 feel 小於 阿王欠的
cout << "不對,在多一點" ;
} else if ( feel == money ) { // 多重判斷式 如果 feel 等於 阿王欠的 ((判斷元 == 與 = 不同意思,日後將再提及))
cout << "沒錯" ;
} else { cout << "你輸入的值可能有問題" ; } // 結束判斷式 如果 feel 不等於小於或大於 阿王欠的 ( 通常是出錯 )
上面的程式碼呈現了我一開始提及的欠錢問題,也許你會覺得這個很簡單,那我們更進階一些:
string account,password;
cout << "請輸入帳號及密碼: ";
cin >> account >> password;
if ( account == "123456"){
if ( password == "654321"){
cout << "恭喜!成功登入!";
} else {
cout << "密碼錯誤 ";
}
} else {
cout << "帳號錯誤 ";
}
上述之例子就是所謂”巢狀”判斷式,其原理與欠錢的程式碼原理相同,我想不必再多做解釋。
switch 選擇式:
有的時候我們可能只需要判斷使用者輸入的”數字”或是”列舉內容”,我們可以用到更簡單的選擇式
switch ( 目標變數 ){
case 內容: { break; }
case 內容2: { break; }
default : //預設
}
程式實作:
int p = 0;
cout << "請輸入 p 的值: ";
cin >> p;
switch ( p ){
case 5 : cout << "您輸入的是 : " << p ; // 5
break;
case 10 : cout << "您輸入的是 : " << p ; // 10
break;
default :
cout << "您輸入的值不再選擇內";
}
若今天我輸入了 5
輸出結果:您輸入的是 : 5
* default * 當不符合任何條,執行此處之程式碼。
* 注意,選擇區間的 break 非常重要,可以需求選擇是否使用。
當希望 條件 A 和 條件 B 同一件事情的時候,只需:
case A :
case B :
break;
意思即是 條件 A 和 條件 B 都做一樣的事情。
若希望 條件 A 和 條件 B 做一樣的事,但條件 C 做別的事情,則:
case A :
case B :
break;
case C :
break;- 總教學整合範例:
- 注意 : 本程式碼需引入標頭檔 string → #include "string"
- int type;
- string acc , pass , do_; //此處請勿使用 do 因為 do 為 C++ 原生關鍵詞
- cout << "請輸入你要做什麼: ( 登入請輸入 1 ,查看說明出入 2) ";
- cin >> type;
- switch ( type ) {
- case 1 : do_ = "login";
- break;
- case 2 : do_ = "info";
- break;
- default : do_ = "not_thing";
- break;
- }
- if ( do_ == "login"){
- /* 可搭配上段之簡單登入。 */
- } else if ( do_ = "info" ){
- /* 查看說明,程式碼請自行發揮想像力。 */
- } else if ( do_ = "not_thing" ) {
- /* 沒有事情可做。 */
- } else {
- /* 錯誤!。 */
- }
- } // 對應於 main
複製代碼
本文章之程式碼皆已使用 C++ 編譯器編譯成功 ( VS 2010 、 VS 2008 、 DEV - C++)
本篇原本為”迴圈之應用”後因考量後決定先以”判斷式”為優先教學。
下章節預計將會以”迴圈應用”以及”簡單函式”為教學主體。
|
評分
-
查看全部評分
|