close

流程控制,就是說明這個程式的順序,因為C語言本身是順序型的語言
代表他執行完第一行之後,接下來一定是執行第二行
(原本有goto,不過會讓程式太複雜,因此之後鮮少使用)
 

    cout<<"please eanter a number:";
    int num;
    cin>>num;
    int compare=10; 
    if(num>=compare)  //判斷式A
{ cout<<"你輸入的值比10大(包含)";
} else if(num<0) //判斷式B
{
cout<<"你輸入的數字比0還小ㄟ!!!!";
}
else
{ cout<<"你輸入的值比10小";
}

if-else這個是最簡單的流程控制

如果符合判斷式A的,就執行A事件

如果不符合判斷式A但是符合判斷式B的就執行B事件

如果不符合A事件和B事件的,就執行C事件

(因為C語言屬於順序型語言,所以不會有判斷式A符合,但是執行C事件的問題) 

 

不過要做出延伸可以做出if-else if -else

這樣的三選一函數,或是更複雜都可以,就看使用者的程式流程

ps.通常if條件會執行下面那行,但是如果你想要讓這個判斷式能夠執行很多指令

   通常作法有兩個,第一個做法就是 

if(a==true)
{
A事件 } else
{
B事件 }

第二種作法就是直接在底下呼叫函式,這樣就可以執行很多指令

接下來要介紹的流程控制的方法是switch

     int num;
     cout<<"please enter a number:";
     cin>>num;
     int number;
     switch(num)
     {
     case 1:
       number=1;  
      break;               
     case 2:
       number=2;                
       break;
     case 3:
       number=3;
      break;       
    }
    cout<<number;

由上面可以輕易得知,當如果使用者輸入一個值的時候,它會自己進入底下的switch判斷式

如果符合case的條件之後,它會執行裡面的條件式,因為switch只要遇到符合條件的地方

它就會不斷的繼續往下執行,因此必須加上break去中斷條件

不然的話這個輸入就算為1,它執行後的結果還是為3 

 

為什麼要把這兩個放在一起說呢?

因為這兩個都是很類似的條件判斷,但是差異在於她們的比對速度還有判斷條件

 

if-else有著相當優異的判斷條件,因為它可以比對不同type的條件

但是缺點就是如果有著相當多筆需要比對(EX:10萬筆)

但是剛好每次比對都剛好符合最底下那筆的時候,就相當不適合使用if-else去做判斷

 

switch就沒有這麼好的判斷條件,它只能比對數字或是字元

但是他的優點就是能夠快速的比對,在switch裡面做好要比對的東西

它會自動跳到符合的字元,就可以開始執行之後的結果

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    szss8765 發表在 痞客邦 留言(0) 人氣()