11.C 判斷

1.判斷結構要求:

         程序員指定一個或多個要評估或測試的條件,以及條件爲真時要執行的語句(必需的)和條件爲假時要執行的語句(可選的)。html

C 語言把任何非零非空的值假定爲 true,把或 null 假定爲 false程序員

下面是大多數編程語言中典型的判斷結構的通常形式:express

C 中的判斷語句

2.判斷語句

C 語言提供瞭如下類型的判斷語句。點擊連接查看每一個語句的細節。編程

語句 描述
if 語句 一個 if 語句 由一個布爾表達式後跟一個或多個語句組成。
if...else 語句 一個 if 語句 後可跟一個可選的 else 語句,else 語句在布爾表達式爲假時執行。
嵌套 if 語句 您能夠在一個 if 或 else if 語句內使用另外一個 if 或 else if 語句。
switch 語句 一個 switch 語句容許測試一個變量等於多個值時的狀況。
嵌套 switch 語句 您能夠在一個 switch 語句內使用另外一個 switch 語句。

 

 3.運算符(三元運算符)

能夠用來替代 if...else 語句。它的通常形式以下:編程語言

Exp1 ? Exp2 : Exp3;

其中,Exp一、Exp2 和 Exp3 是表達式。請注意,冒號的使用和位置。測試

? 表達式的值是由 Exp1 決定的。若是 Exp1 爲真,則計算 Exp2 的值,結果即爲整個 ? 表達式的值。若是 Exp1 爲假,則計算 Exp3 的值,結果即爲整個 ? 表達式的值。spa

實例

#include<stdio.h> htm

int main() blog

{ get

int num;

printf("輸入一個數字 : ");

scanf("%d",&num);

(num%2==0)?printf("偶數"):printf("奇數");

}

經過輸入一個數字來判斷它是否爲奇數或偶數

 

*

1.舉一個三目(元)運算的例子:

#include <stdio.h>

int A=10;
int B=20;
char buy;
int sum,number;

int main(){
    printf("如下是本店的商品及價格:\n A 商品每一個十元;\n B 商品每一個二十元;\n\n");
    printf("請輸入你所需的產品(A 或 B):");
    scanf("%c",&buy);
    printf("請輸入所需的數量:");
    scanf("%d",&number);
    sum=buy=='A'?A*number:B*number;
    printf("\n你所須要的%d個%c商品總共%d元。\n",number,buy,sum);
    return 0;
}

2.switch語句通常形式:

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

意思是先計算表達式的值,再逐個和 case 後的常量表達式比較,若不等則繼續往下比較,若一直不等,則執行 default 後的語句;若等於某一個常量表達式,則從這個表達式後的語句開始執行,並執行後面全部 case 後的語句。

與 if 語句的不一樣:if 語句中若判斷爲真則只執行這個判斷後的語句,執行完就跳出 if 語句,不會執行其餘 if 語句;而 switch 語句不會在執行判斷爲真後的語句以後跳出循環,而是繼續執行後面全部 case 語句。在每一 case 語句以後增長 break 語句,使每一次執行以後都可跳出 switch 語句,從而避免輸出不該有的結果。

#include <stdio.h>

int main()
{
    int a;
    printf("input integer number: ");
    scanf("%d",&a);
    switch(a)
    {
        case 1:printf("Monday\n");
        break;
        case 2:printf("Tuesday\n");
        break;
        case 3:printf("Wednesday\n");
        break;
        case 4:printf("Thursday\n");
        break;
        case 5:printf("Friday\n");
        break;
        case 6:printf("Saturday\n");
        break;
        case 7:printf("Sunday\n");
        break;
        default:printf("error\n");
    }
}

 

C.判斷語句: if 語句

一個 if 語句 由一個布爾表達式後跟一個或多個語句組成。

語法

C 語言中 if 語句的語法:

if(boolean_expression)
{
   /* 若是布爾表達式爲真將執行的語句 */
}

若是布爾表達式爲 true,則 if 語句內的代碼塊將被執行。若是布爾表達式爲 false,則 if 語句結束後的第一組代碼(閉括號後)將被執行。

C 語言把任何非零非空的值假定爲 true,把或 null 假定爲 false

流程圖

C 中的 if 語句

 

實例

#include <stdio.h>

int main ()

{                            /* 局部變量定義 */

int a = 10;                 

if( a < 20 )                                       /* 使用 if 語句檢查布爾條件 */

{

printf("a 小於 20\n" );                          /* 若是條件爲真,則輸出下面的語句 */

}

printf("a 的值是 %d\n", a); return 0;

}

當上面的代碼被編譯和執行時,它會產生下列結果:

a 小於 20
a 的值是 10

 

C.判斷語句:  if...else 語句

一個 if 語句 後可跟一個可選的 else 語句,else 語句在布爾表達式爲 false 時執行。

語法

C 語言中 if...else 語句的語法:

if(boolean_expression)
{
   /* 若是布爾表達式爲真將執行的語句 */
}
else
{
   /* 若是布爾表達式爲假將執行的語句 */
}

若是布爾表達式爲 true,則執行 if 塊內的代碼。若是布爾表達式爲 false,則執行 else 塊內的代碼。

C 語言把任何非零非空的值假定爲 true,把或 null 假定爲 false

流程圖

C 中的 if...else 語句

 

 

 

#include <stdio.h>

int main ()

{

/* 局部變量定義 */

int a = 100;                                                 /* 檢查布爾條件 */

if( a < 20 )

{

printf("a 小於 20\n" );                          /* 若是條件爲真,則輸出下面的語句 */

}

else

{

printf("a 大於 20\n" );                      /* 若是條件爲假,則輸出下面的語句 */

}

printf("a 的值是 %d\n", a);

return 0;

}

當上面的代碼被編譯和執行時,它會產生下列結果:

a 大於 20
a 的值是 100

 

if...else if...else 語句

一個 if 語句後可跟一個可選的 else if...else 語句,這可用於測試多種條件。

當使用 if...else if...else 語句時,如下幾點須要注意:

  • 一個 if 後可跟零個或一個 else,else 必須在全部 else if 以後。
  • 一個 if 後可跟零個或多個 else if,else if 必須在 else 以前。
  • 一旦某個 else if 匹配成功,其餘的 else if 或 else 將不會被測試。

語法:

C 語言中的 if...else if...else 語句的語法:

if(boolean_expression 1)
{
   /* 當布爾表達式 1 爲真時執行 */
}
else if( boolean_expression 2)
{
   /* 當布爾表達式 2 爲真時執行 */
}
else if( boolean_expression 3)
{
   /* 當布爾表達式 3 爲真時執行 */
}
else 
{
   /* 當上麪條件都不爲真時執行 */
}

 

#include <stdio.h>
 
int main ()
{
   /* 局部變量定義 */
   int a = 100;
 
   /* 檢查布爾條件 */
   if( a == 10 )
   {
       /* 若是 if 條件爲真,則輸出下面的語句 */
       printf("a 的值是 10\n" );
   }
   else if( a == 20 )
   {
       /* 若是 else if 條件爲真,則輸出下面的語句 */
       printf("a 的值是 20\n" );
   }
   else if( a == 30 )
   {
       /* 若是 else if 條件爲真,則輸出下面的語句 */
       printf("a 的值是 30\n" );
   }
   else
   {
       /* 若是上面條件都不爲真,則輸出下面的語句 */
       printf("沒有匹配的值\n" );
   }
   printf("a 的準確值是 %d\n", a );
 
   return 0;
}

當上面的代碼被編譯和執行時,它會產生下列結果:

沒有匹配的值
a 的準確值是 100

C.判斷語句:C 嵌套 if 語句

在 C 語言中,嵌套 if-else 語句是合法的,這意味着您能夠在一個 if 或 else if 語句內使用另外一個 if 或 else if 語句。

語法

C 語言中 嵌套 if 語句的語法:

if( boolean_expression 1)
{
   /* 當布爾表達式 1 爲真時執行 */
   if(boolean_expression 2)
   {
      /* 當布爾表達式 2 爲真時執行 */
   }
}

實例

#include <stdio.h>

int main ()

{

int a = 100;            /* 局部變量定義 */

int b = 200;

 

if( a == 100 )       /* 檢查布爾條件 */

{

/* 若是條件爲真,則檢查下面的條件 */

if( b == 200 )

{

/* 若是條件爲真,則輸出下面的語句 */

printf("a 的值是 100,且 b 的值是 200\n" );

}

}

printf("a 的準確值是 %d\n", a );

printf("b 的準確值是 %d\n", b );

return 0;

}

結果:

a 的值是 100,且 b 的值是 200
a 的準確值是 100
b 的準確值是 200

 

C.判斷語句: switch 語句

一個 switch 語句容許測試一個變量等於多個值時的狀況。每一個值稱爲一個 case,且被測試的變量會對每一個 switch case 進行檢查。

語法

C 語言中 switch 語句的語法:

switch(expression)

{

case constant-expression : statement(s);

break;                                  /* 可選的 */

 

case constant-expression : statement(s);

break;                              /* 可選的 */

                                     /* 您能夠有任意數量的 case 語句 */

default :     /* 可選的 */

statement(s);

}

switch 語句必須遵循下面的規則:

  • switch 語句中的 expression 是一個常量表達式,必須是一個整型或枚舉類型。
  • 在一個 switch 中能夠有任意數量的 case 語句。每一個 case 後跟一個要比較的值和一個冒號。
  • case 的 constant-expression 必須與 switch 中的變量具備相同的數據類型,且必須是一個常量或字面量。
  • 當被測試的變量等於 case 中的常量時,case 後跟的語句將被執行,直到遇到 break 語句爲止。
  • 當遇到 break 語句時,switch 終止,控制流將跳轉到 switch 語句後的下一行。
  • 不是每個 case 都須要包含 break。若是 case 語句不包含 break,控制流將會 繼續 後續的 case,直到遇到 break 爲止。
  • 一個 switch 語句能夠有一個可選的 default case,出如今 switch 的結尾。default case 可用於在上面全部 case 都不爲真時執行一個任務。default case 中的 break 語句不是必需的。

#include <stdio.h>

int main ()

{

char grade = 'B';          /* 局部變量定義 */

switch(grade)

{

case 'A' : printf("優秀!\n" );

break;

case 'B' : case 'C' : printf("良好\n" );

break;

case 'D' : printf("及格\n" );

break;

case 'F' : printf("未及格\n" );

break;

default : printf("成績無效\n" );

}

printf("您的成績是 %c\n", grade );

return 0;

}

結果:

良好
您的成績是 B

C.判斷語句: 嵌套 switch 語句

能夠把一個 switch 做爲一個外部 switch 的語句序列的一部分,便可以在一個 switch 語句內使用另外一個 switch 語句。即便內部和外部 switch 的 case 常量包含共同的值,也沒有矛盾。

語法

C 語言中 嵌套 switch 語句的語法:

switch(ch1) {
   case 'A': 
      printf("這個 A 是外部 switch 的一部分" );
      switch(ch2) {
         case 'A':
            printf("這個 A 是內部 switch 的一部分" );
            break;
         case 'B': /* 內部 B case 代碼 */
      }
      break;
   case 'B': /* 外部 B case 代碼 */
}

實例

#include <stdio.h>

int main ()

{

/* 局部變量定義 */

        int a = 100;

         int b = 200;

        switch(a)

{

                  case 100: printf("這是外部 switch 的一部分\n");

                        switch(b) {

                            case 200: printf("這是內部 switch 的一部分\n");

         }

   }

printf("a 的準確值是 %d\n", a );

printf("b 的準確值是 %d\n", b ); return 0;

}

當上面的代碼被編譯和執行時,它會產生下列結果:

這是外部 switch 的一部分
這是內部 switch 的一部分
a 的準確值是 100
b 的準確值是 200
相關文章
相關標籤/搜索