流程控制,就是說明這個程式的順序,因為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裡面做好要比對的東西
它會自動跳到符合的字元,就可以開始執行之後的結果
留言列表