C If

2018-05-19 18:20 更新

學(xué)習(xí)C - C If

if語句的一般形式或語法是:

 
if(expression) 
    Statement1; 
Next_statement; 

請注意,第一行末尾沒有分號。

第二行可以直接寫在第一行之后,如下所示:

if(expression) Statement1;

括號中的表達式可以是導(dǎo)致值為true或false的任何表達式。

如果表達式為true,則執(zhí)行Statement1,之后程序繼續(xù)使用Next_statement。

如果表達式為false,則會跳過Statement1,并使用Next_statement立即繼續(xù)執(zhí)行。

因為if語句的控制表達式預(yù)期會產(chǎn)生一個布爾結(jié)果,所以編譯器將安排將產(chǎn)生數(shù)值結(jié)果的if表達式的結(jié)果轉(zhuǎn)換為bool類型。

這里有一個語句說明了這一點:

if(count) 
  printf("The value of count is not zero.\n"); 

如果count不為0,則只會產(chǎn)生輸出,因為count的值為0將導(dǎo)致if表達式的值為false。

count的任何非零值將導(dǎo)致表達式為true。

以下代碼顯示了if語句的簡單示例


    #include <stdio.h> 
   
    int main(void) 
    { 
      int number = 0; 
      printf("\nEnter an integer between 1 and 10: "); 
      scanf("%d",&number); 
      
      if(number > 5) 
        printf("You entered %d which is greater than 5\n", number); 
      
      if(number < 6) 
        printf("You entered %d which is less than 6\n", number); 
      return 0; 
    } 

上面的代碼生成以下結(jié)果。



if else

if..then的語法模型可以表示如下:

  if (conditional) { 
     // do something 
  }else{ 
     // do another job 
  } 

可以通過邏輯或/和比較操作獲得條件。

if-else語句的語法如下:

if(expression) 
  Statement1; 
else 
  Statement2; 
  
Next_statement; 

在這里,你有一種或兩種情況。您將始終執(zhí)行Statement1或Statement2,具體取決于表達式是否導(dǎo)致值為true或false。

如果expression為true,則執(zhí)行Statement1,并繼續(xù)執(zhí)行Next_statement。

如果expression為false,則執(zhí)行else關(guān)鍵字后面的Statement2,并繼續(xù)執(zhí)行Next_statement。


    #include <stdio.h> 

    int main(void) 
    { 
      const double PRICE = 3.50;                     // Unit price in dollars 
      int quantity = 0; 
      printf("Enter the number that you want to buy:");   
      scanf(" %d", &quantity);                            // Read the input 
      

      double total = 0.0;                                 // Total price 
      if(quantity > 10)                                   // 5% discount 
        total = quantity * PRICE * 0.95; 
      else                                                // No discount 
        total = quantity*PRICE; 
      printf("The price for %d is $%.2f\n", quantity, total); 
      return 0; 
    } 

上面的代碼生成以下結(jié)果。



If 語句中的代碼塊

您可以使用if語句中大括號{}之間的語句塊。

當if表達式的值為true時,可以提供要執(zhí)行的幾個語句。

涉及語句塊的if語句的一般形式如下所示:

if(expression) 
{ 
  StatementA1; 
  StatementA2; 
  . . . 
} 
else 
{ 
  StatementB1; 
  StatementB2; 
  . . . 
} 
  
Next_statement; 

例子

這里是示例代碼:


  #include <stdio.h> 

  int main() { 
     int a, b; 
     a = 5; 
     b = 8; 

     if(a>b  || a-b<a){ 
             printf("conditional-->a>b  || a-b<a \n"); 
     }else{ 
             printf("..another \n"); 
     } 
     return 0; 
  } 

上面的代碼生成以下結(jié)果。

嵌套if語句


    #include <stdio.h> 
    #include <limits.h>               // For LONG_MAX 

    int main(void) 
    { 
      long test = 0L;                 // Stores the integer to be checked 
      
      printf("Enter an integer less than %ld:", LONG_MAX); 
      scanf(" %ld", &test); 
      
      // Test for odd or even by checking the remainder after dividing by 2 
      if(test % 2L == 0L) 
      { 
        printf("The number %ld is even", test); 
      
        // Now check whether half the number is also even 
        if((test/2L) % 2L == 0L) 
        { 
          printf("\nHalf of %ld is also even", test); 
          printf("\nThat"s interesting isn"t it?\n"); 
        } 
      } 
      else 
        printf("The number %ld is odd\n", test); 
      return 0; 
    } 

上面的代碼生成以下結(jié)果。

測試字符

字符值可以表示為整數(shù)或引號之間的鍵盤字符,例如“A”。

此示例使用一些新的邏輯運算符。

程序會將輸入的大寫字母轉(zhuǎn)換為小寫字母:


    #include <stdio.h> 

    int main(void) 
    { 
      char letter = 0;                          // Stores a character 
      
      printf("Enter an uppercase letter:");     // Prompt for input 
      scanf("%c", &letter);                     // Read a character 
      
      // Check whether the input is uppercase 
      if(letter >= "A")                         // Is it A or greater? 
        if(letter <= "Z")                       // and is it Z or lower? 
        {                                       // It is uppercase 
          letter = letter - "A" + "a";          // Convert from upper- to lowercase 
          printf("You entered an uppercase %c\n", letter); 
        } 
        else                                    // It is not an uppercase letter 
          printf("A capital letter.\n"); 
      return 0; 
    } 

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號