HOME ABOUT CONTACT

C/C++教學: 第八課 - if - else if - else 判斷式結構

Rain May 19, 2024

if - else if - else 判斷式結構top

在第六課 - 邏輯運算中我們有提到,邏輯運算常用於建構成條件式,而條件式即為判斷式的基本元素。
在本課我們要介紹的是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;
    }
}
                        

讀者可用下面範例進行測試和練習:

下一篇: 第九課 switch結構

Last updated:

Related Artical List

  1. C/C++教學: 第六課 - 邏輯運算
  2. C/C++教學: 第七課 - 位元運算
  3. C/C++教學: 第九課 switch結構

Article List