C++編程入門系列之六(算法的基本控制結構之選擇結構)

上一講雞啄米爲大家講了運算符和表達式的知識,這一講雞啄米主要講算法基本控制結構中的選擇結構,同時教大家寫比較簡單的程序。

爲了能寫出簡單的程序並看見它們的輸出效果,雞啄米先講下數據的輸入和輸出。數據從一個對象到另一個對象的流動我們一般稱之爲“流”,比如程序中的數據在屏幕上顯示出來,我們可以想成數據從程序流向屏幕,就是輸出流。從鍵盤輸入數據就是輸入流了。從流中獲取數據叫做提取操作,向流中添加數據叫做插入操作。cin是系統預定義的輸入流,用來處理標準輸入即鍵盤輸入。cout是預定義的輸出流,用來處理標準輸出,即屏幕輸出。

“<<”是預定義的插入符,它用在cout上可以實現屏幕輸出。使用形式如下:cout<<表達式<<表達式…。這裏可以連着多個表達式,輸出多個數據到屏幕。這裏的表達式可以是很複雜的表達式,系統會計算出這些表達式的值只把結果傳給插入符<<,然後顯示到屏幕上。例如,cout<<”a+b=”<

雞啄米:C++編程入門系列之六(算法的基本控制結構之選擇結構)

一.用if語句實現選擇結構

if語句專門用來實現選擇結構,使用形式爲:

  if (表達式)
  語句1
  else
  語句2

這個結構的執行順序是,先計算表達式的值,如果爲true,則執行語句1,否則就執行語句2。比如,

  if (x>y)
     cout<<x;
  else
     cout<<y;

這段程序可以用來輸出x和y中比較大的那個數。if語句中的else和語句2可以沒有,變成:if (表達式) 語句。比如,

if (x>y) cout<

二.多重選擇結構

有些問題可能需要我們進行多次判斷,這樣就可以有幾種方法

1.嵌套的if語句

使用的語法形式:

  if(表達式1)
  if(表達式2)  語句1
  else 
    語句2
  else
    if(表達式3)  語句3
  else 語句4

語句1、2、3、4可以是複合語句。每一層的if都要與else配對,如果省略掉一個else則要使用{}把這一層的if語句括起來。雞啄米建議大家寫程序的時候最好每層都用大括號括起來這樣會大大減少出錯的概率,也比較整齊,即使是熟手也一樣。雞啄米再給大家舉個例子:

  #include "stdafx.h"
  #include <iostream>
  using namespace std;
  int _tmain(int argc, _TCHAR* argv[])
  {
         int x,y;
         cout<<"Enter x and y:";
         cin>>x>>y;
         if (x!=y)
         {
                if (x>y)
                     cout<<"x>y"<<endl;
                else
                     cout<<"x<y"<<endl;
         }
         else
         {
                cout<<"x=y"<<endl;
         }
         return 0;
  }

運行這個程序,屏幕上會顯示,Enter x and y:,然後輸入3 5,按回車接着會顯示x

2.if…else if語句

若if語句的嵌套都在else分支下,就可以使用if…else if語句。使用的語法形式爲:

  if (表達式1)  語句1
  else if (表達式2)   語句2
  else if (表達式3)   語句3
  ...
  else語句n

這裏的執行邏輯就是,如果表達式1爲true,則執行語句1,如果表達式1爲false,且表達式2爲true則執行語句2,如果表達式1、表達式2爲false,且表達式3爲true則執行語句3…就這樣一層一層判斷着執行下去。

3.switch語句

我們進行判斷選擇的時候,有可能每次都是對同一個表達式的值進行判斷,那麼就沒有必要在每一個嵌套的if語句裏都計算一下它的值,而是使用switch來解決這個問題。語法形式爲:

  switch (表達式)
  {
  case 常量表達式1:  語句1
  case 常量表達式2:  語句2
  ...
  case 常量表達式n:  語句n
  default:   語句n+1
  }   

此類語句的執行順序是,先計算表達式的值,然後在case語句中尋找與之相等的常量表達式,跳到此處開始執行,若沒有與之相等的則跳到default開始執行。使用switch語句時要注意以下幾點:這些常量表達式的值不能相同,順序可以隨便;每個case語句的最後都要加break語句,不然會一直把下面所有的語句執行完;switch括號裏的表達式必須是整型、字符型和枚舉型的一種;每個case下的語句不需要加{};如果多個case下執行一樣的操作,則多個case可以共用一組語句,比如

  case 1:
  case 2:
  case 3:   a++;
            break;

雞啄米再給大家舉個switch的例子。如果整型變量a爲0則輸出“小雞”,如果爲1則輸出“小啄”,如果爲2則輸出“小米”,其他情況下輸出“雞啄米”。程序如下:

  #include "stdafx.h"
  #include <iostream>
  using namespace std;
  int _tmain(int argc, _TCHAR* argv[])
  {
          int a;
          cout<<"Enter a:";
          cin>>a;
          switch (a)
          {
          case 0:
                   cout<<"小雞"<<endl;
                   break;
          case 1:
                   cout<<"小啄"<<endl;
                   break;
          case 2:
                   cout<<"小米"<<endl;
                   break;
          default:
                   cout<<"雞啄米"<<endl;
                   break;
          }
          return 0;
  }

運行時屏幕顯示Enter a:,我們輸入2,則會接着顯示“小米”。

這一講雞啄米首先講了輸入輸出流對象,然後講了選擇控制結構,舉了幾個程序例子,大家可以按照雞啄米的程序上機調試運行下,也可以自己在此基礎上改改程序然後看看結果是否如你所想,大家先找找編程的感覺,在編程入門的時候不要着急。

思考:

1. 什麼是流?
2. 使用switch需要注意什麼?5點
3. 本文講到哪些知識點?

本文轉自雞啄米課堂

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章