在第六課 - 邏輯運算中我們有提到,邏輯運算常用於建構成條件式,而條件式即為判斷式的基本元素。
在本課我們要介紹的是if - else if - else判斷式結構,此結構只有 if 可以單獨使用,而 else if 和 else 是選用的(Optional)。
每個 else if 和 else 都要對到一個 if 作為開頭,且每個 if 開頭的判斷式結構都是獨立群,這是什麼意思呢? 我們看看下面的範例:
我們先來看看最基本的範例來了解此判斷式結構:
int main() {
int i = 0;
if (i < 1) {
// 如果變數i小於1該做什麼
} else if (i == 1) {
// 如果變數i等於1該做什麼
} else {
// 如果上述條件都不成立,該做什麼
}
}
上述範例列出了 if - else if - else 最基本的架構,共三種情況的條件式。
那麼我們再來看看條件式成立的方塊裡對變數 i 做處理的範例:
int main() {
int i = 0;
if (i < 1) {
i = 1;
std::cout << "The if condition is achieved." << std::endl;
}
else if (i == 1) {
i += 1;
std::cout << "The else if condition is achieved." << std::endl;
}
else {
std::cout << "The else condition is achieved." << std::endl;
}
}
思考上面範例,這個條件式架構程式會如何執行呢?
很明顯的第一個條件會成立,並且把變數 i 變成了 1,第二個條件是變數 i 要等於 1,此時這個條件式又成立了,然而程式會執行這段程式碼嗎?
答案是不會的。
雖然程式碼執行是由上到下執行,但判斷式架構從上到下只要有一個條件先成立了,就會先執行該程式碼方塊,執行完後就會跳脫出這個架構,並執行後續的程式碼。
因此,設計者在設計系統流程時,若有不同的情況需要做判斷,需要先思考這些情況之間的關係以及是否會互相影響,再進行撰寫判斷式。下面列出多個判斷式架構的範例:
int main() {
int i = 0;
int j = 0;
if (i >= 1) {
j = 1;
std::cout << "The first if condition is achieved." << std::endl;
}
if (j == 1) {
std::cout << "The second if condition is achieved." << std::endl;
}
}
讀者可用下面範例進行測試和練習:
Last updated: