close

 

C判斷        Mr.CFG

 

判斷是依條件式,決定要不要執行程式區塊。今天講四種結構:

第一種  if….else

會先判斷條件,不成立就執行else下的程式。

if(條件式){

  程式區塊1;

}

else{

  程式區塊2;

}

例:

if(a%2){

printf(“a為奇數”);

}

a除以2取餘數為1(1為真值),印出a為奇數。由於任何正整數除以2,餘數不是0就是1,因此當a%21時,代表條件成立,執行以下程式。如果等於0時,條件不成立,就跳過if的大括號。

在舉個例子:

if(a>=2 && a<=99){

  b = a/10;

  c = a%10;

}

如果a是個二位數,將a的十位數指定給變數b,將a的個位數指定給變數c

使用if時,後面不一定要有elseelse不需有條件式,只要不符合前面的if條件,就直接到else執行。

 

第二種  if ….else if…else

這種結構,一一去判斷條件,決定要執行哪一區段程式,可以有nelse 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;

}

以上,當使用者輸入一個值或字元,判斷是ab 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;

}

如果我輸入ab,就印出123,因為輸入a時,沒遇到break,就繼續往下執行直到遇到break

 

這些都是判斷語法,只要是有條件的去執行程式,就用得到。要對好括弧,層層結構,才整齊。下次寫迴圈結構。

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 cfgchouhang 的頭像
    cfgchouhang

    Mr.CFG的小小小天地

    cfgchouhang 發表在 痞客邦 留言(1) 人氣()