C判斷 Mr.CFG
判斷是依條件式,決定要不要執行程式區塊。今天講四種結構:
第一種 if….else
會先判斷條件,不成立就執行else下的程式。
if(條件式){
程式區塊1;
}
else{
程式區塊2;
}
例:
if(a%2){
printf(“a為奇數”);
}
當a除以2取餘數為1時(1為真值),印出a為奇數。由於任何正整數除以2,餘數不是0就是1,因此當a%2為1時,代表條件成立,執行以下程式。如果等於0時,條件不成立,就跳過if的大括號。
在舉個例子:
if(a>=2 && a<=99){
b = a/10;
c = a%10;
}
如果a是個二位數,將a的十位數指定給變數b,將a的個位數指定給變數c
使用if時,後面不一定要有else。else不需有條件式,只要不符合前面的if條件,就直接到else執行。
第二種 if ….else if…else
這種結構,一一去判斷條件,決定要執行哪一區段程式,可以有n個else if所以你可以有n個條件讓他去判斷,當條件成立後,執行完程式後就跳出整個判斷敘述執行以後的東西。記得在每個判斷的大括號裡,程式碼結束的地方要加個分號!
if(條件式){
程式區塊;
}
else if(條件式2){
程式區塊2;
}
else{
程式區塊3;
}
例子:
int a;
if(a>0){
printf(“正整數”);
}
else if(a == 0){
printf(“是…0”);
}
else{
printf(“負整數”);
}
以上,很簡單,判斷a是正整數,負整數還是0。另外,如果程式碼只有一行,可以不必加大括號,但不建議,寫的時候盡量要保持結構完整性。
第三種 巢狀if
巢狀if就是在原本的if裡還有if敘述,這時外層的就是巢狀if。
if(條件式){
if(條件式2){
程式區塊;
}
else{
程式區塊2;
}
}
else{
if(條件式3){
程式區塊3;
}
else{
程式區塊4;
}
}
這種巢狀使用要看時機,有時只要用if(條件1 || 條件2)就可以取代,就不舉例子了。
第四種 switch
當你有兩個條件要判斷時,可以用if,當你有很多條件要判斷時可以用else if。還有一種就是switch,會根據某字元或是變數,再判斷要進入哪個區塊。執行完遇到break後,才跳出。
switch(變數或運算式){
case 值 :
程式敘述;
break;
case 值2:
程式敘述2;
break;
case 值3:
程式敘述3;
break;
default:
程式敘述4;
break;
}
例子:
char ch;
scanf(“%c”,&menu);
switch(menu){
case ‘a’:
printf(“牛排”);
break;
case ‘b’:
printf(“豬排”);
break;
case ‘c’:
printf(“雞排”);
break;
default:
printf(“大便”);
break;
}
以上,當使用者輸入一個值或字元,判斷是a或b 或c,印出你點的餐。當然,也不一定要default,只要是不符合以上的條件,都直接到default執行。當條件符合,程式執行完後遇到break後才會跳開,再看以下例子。
char ch;
scanf(“%c”,&gg);
switch(gg){
case ‘a’:
case ‘b’:
printf(“123”);
break;
case ‘c’:
case ‘d’:
printf(“456”);
break;
}
如果我輸入a或b,就印出123,因為輸入a時,沒遇到break,就繼續往下執行直到遇到break。
這些都是判斷語法,只要是有條件的去執行程式,就用得到。要對好括弧,層層結構,才整齊。下次寫迴圈結構。
留言列表