首頁 > 編程 > C++ > 正文

            C++教程:C++ if else語句講解

            2020-05-23 14:28:26
            字體:
            來源:轉載
            供稿:網友
            平時我們在說“如果……,那么……”的時候,還經常和“否則……”連用。比如:如果明天天氣好,就開運動會,否則就不開。按照我們上一節學的內容,我們只能這樣說:如果明天天氣好,就開運動會;如果明天天氣不好,就不開運動會。雖然這樣也能夠把意思表達清楚,但是語句顯得冗長,要是條件再多一些則更是雜亂。可見,在程序設計中,如果沒有“否則……”語句將會多么麻煩。

            和平時說話的習慣一樣,“否則”應該與“如果”連用,其語法格式為:
            C++教程:C++ if else語句講解if (條件)
               語句塊1;
            else
               語句塊2;


            運行到該語句時,當條件滿足,則運行語句塊1中的語句;當條件不滿足,則運行語句塊2中的語句。我們也可以用流程圖(圖4.2.1)來直觀地表示if……else……語句。和if語句一樣,else語句的結尾是沒有分號的。

            我們來看一段程序:(程序4.2.1)
            #include "iostream.h"
            int main() 
            {
               int a,b,max;
               cout <<"請輸入兩個數:"<<endl;
               cin >>a >>b;
               if (a>=b)//如果a大于等于b,則把a的值放到max中
               {
                  max=a;
               }
               else//否則把b的值放到max中
               {
                  max=b;
               }
               cout <<"較大的數是" <<max <<endl;
               return 0;
            }

            第一次運行結果:
            請輸入兩個數:
            1 5
            較大的數是5
            第二次運行結果:
            請輸入兩個數:
            5 8
            較大的數是8
            通過以上程序,我們基本上可以了解if……else……的使用了。

            if...else...嵌套使用

            我們知道了,if語句的主要功能是給程序提供一個分支。然而,有時候程序中僅僅多一個分支是遠遠不夠的,甚至有時候程序的分支會很復雜,要在一個分支里面再有一個分支。根據if語句的流程圖,我們不難想象如果要在分支里再形成分支,就應該在if語句中使用if語句。這類在一種語句的內部多次使用這種語句的現象叫做嵌套。

            我們來看一段程序,熟悉一下if的嵌套。(程序4.2.2)
            #include "iostream.h"
            int main()
            {
               float a,b;
               char oper;//創建一個字符型變量用于存放操作符
               cout <<"請輸入一個表達式(eg.1+2):" <<endl;
               cin >>a >>oper >>b;//輸入表達式,操作符處于中間
               if (oper=='+')//如果操作符是加號
               {
                  cout <<a <<oper <<b <<'=' <<a+b <<endl;//輸出兩數的和
               }
               else//否則
               {
                  if (oper=='-')//如果操作符是減號
                  {
                     cout <<a <<oper <<b <<'=' <<a-b <<endl;//輸出兩數的差
                  }
                  else//否則
                  {
                     if (oper=='*')//如果操作符是乘號
                     {
                        cout <<a <<oper <<b <<'=' <<a*b <<endl;//輸出兩數的積
                     }
                     else//否則
                     {
                        if (oper=='/' && b!=0)//如果操作符為除號且除數不為零
                        {
                           cout <<a <<oper <<b <<'=' <<a/b <<endl;//輸入兩數的商
                        }
                        else//否則
                        {
                           cout <<"出錯啦!" <<endl;//操作符不正確或除數為零,輸出錯誤信息
                        }
                     }
                  }
               }
               return 0;
            }
            第一次運行結果:
            請輸入一個表達式(eg.1+2):
            1.5+3
            1.5+3=4.5
            第二次運行結果:
            請輸入一個表達式(eg.1+2):
            8/0
            出錯啦!
            第三次運行結果:
            請輸入一個表達式(eg.1+2):
            5p3
            出錯啦!

            以上這段程序能夠基本實現表達式的識別。它所使用的if嵌套能夠分辨出到底要進行什么運算,并且把引起錯誤的操作符或數據分支出來。

            如何判斷哪個if...else...是一對

            當一個程序中出現多個if……else……的時候,也可能會引來一些麻煩的事情。因為每個if都具有和else配對的功能。那么我們在閱讀一段程序的時候,怎么才能夠知道哪個if和哪個else是在一起的呢?

            如果你嘗試過在VC++中輸入程序4.2.2,那么你一定會發現,每輸入一次{},括號內部的語句就會自動向右側縮進一段。而if……else……正是根據括號和縮進來判斷它們是不是匹配的。具體的規則是,else向上尋找最近的一個和它處于相同縮進位置的if配對,我們把這種規則理解為“門當戶對”。很顯然,如果你沒有改變過自動產生的縮進位置,else不會去找一個比它更右邊或者更左邊的if的。
            C++教程:C++ if else語句講解

            在有些高級語言中,是沒有縮進的。縮進不僅是為了美觀,也是為了讓程序的層次更加分明。我們通過縮進就能很容易看出一段代碼應該從哪里開始,運行到哪里結束。如果沒有縮進的話,就要去找保留字,這給大型程序開發帶來了麻煩。所以保持縮進是一種好習慣。  
            發表評論 共有條評論
            用戶名: 密碼:
            驗證碼: 匿名發表