if/else布林判別式讓您的程式可以在不同的狀況下有不同的輸出結果.
if/else判別式的作用最主要就是判別一組條件是否成立, 成立為"真" (True), 不成立即 "偽" (False).
以下是一段範例:
#include <iostream> using namespace std; int main() { int computer; cin >> computer; if(computer > 0) { cout << "您輸入了一個正整數" << endl; } else if(computer < 0) { cout << "您輸入了一個負整數" << endl; } else { cout << "您輸入了 0, 既不是正數也不是負數" << endl; } } |
上面這段程式的作用是判別使用者的輸入 (存於整數變數computer中) 的整數. 如果大於零則輸出 "您輸入了一個正整數", 小於零則輸出"您輸入了一個負整數", 如果上面兩者皆不成立則輸出"您輸入了 0, 既不是正數也不是負數" (不大於又不小於當然就是等於囉!)
編譯並執行這隻程式, 當您輸入-3的時候您應該會看到"您輸入了一個負整數", 當您輸入3的時候應該會看到"您輸入了一個正整數", 依此類推.
語法解說:
*注意: 一個判別式可以沒有 else if 或 else, 但是一定要有if. 只要記得, 前面有else的都是次要的, 只有先前的條件不成立才會執行else if或是else.
將剛剛的程式稍微修改一下:
#include <iostream> using namespace std; int main() { int computer; cin >> computer; if(computer > 0) { cout << "您輸入了一個正整數" << endl; } if(computer > 3) { cout << "您輸入了一個大於三的正整數" << endl; } if(computer > 5) { cout << "您輸入了了一個大於五的正整數" << endl; } } |
這個範例使用的判別全部都是if, 因此就算第一個if判別條件成立, 第二個if仍然會執行.
編譯並且執行這隻程式, 並且輸入6, 會發現程式中會有三個輸出, 如果輸入5的話則只有兩個輸出. 總之只要記得else代表的是次要判別, 如果先前的不成立才會執行, 在這邊由於全部都是if, 因此不管先前是否成立都照常執行下一則判別.
接下來要介紹的比較特別一點, 是條件式用兩個以上的個別條件式組合的.
如: if(computer>0 && computer%2==0)
其中&&代表就是"and", 也就是前後兩個條件都必須成立, 在此例中就是computer必須是大於0的整數且必須是偶數 (computer除以%2如果餘數是0當然就是偶數啦)
當然有"and"就有"or".
or在C++中的寫法是 "||" (兩條直線), or的意思就是前後兩個條件只要有一者成立即可.
看看這個範例:
#include <iostream> using namespace std; int main() { int computer; cin >> computer; if(computer > 0 && computer%2==0) { cout << "您輸入了一個正偶數" << endl; } else if(computer < 0 || computer==0) { cout << "你輸入的不是正整數" << endl; } else { cout << "你輸入了一個正奇數" << endl; } } |
這段的邏輯不難, 如果是大於0且除以2沒有餘數的當然就是正偶數
如果是小於零或是等於零, 當然就不是正整數
如果是正整數, 但不是正偶數, 當然就是正奇數啦!