C If

学习C - C If

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

 
if(expression) 
    Statement1; 
Next_statement; 

请注意,第一行末尾没有分号。

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

if(expression) Statement1;

括号中的表达式可以是导致值为true或false的任何表达式。

如果表达式为true,则执行Statement1,之后程序继续使用Next_statement。

如果表达式为false,则会跳过Statement1,并使用Next_statement立即继续执行。

因为if语句的控制表达式预期会产生一个布尔结果,所以编译器将安排将产生数值结果的if表达式的结果转换为bool类型。

这里有一个语句说明了这一点:

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

如果count不为0,则只会产生输出,因为count的值为0将导致if表达式的值为false。

count的任何非零值将导致表达式为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; 
    } 

上面的代码生成以下结果。



if else

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

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

可以通过逻辑或/和比较操作获得条件。

if-else语句的语法如下:

if(expression) 
  Statement1; 
else 
  Statement2; 
  
Next_statement; 

在这里,你有一种或两种情况。您将始终执行Statement1或Statement2,具体取决于表达式是否导致值为true或false。

如果expression为true,则执行Statement1,并继续执行Next_statement。

如果expression为false,则执行else关键字后面的Statement2,并继续执行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; 
    } 

上面的代码生成以下结果。



If 语句中的代码块

您可以使用if语句中大括号{}之间的语句块。

当if表达式的值为true时,可以提供要执行的几个语句。

涉及语句块的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; 
  } 

上面的代码生成以下结果。

嵌套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; 
    } 

上面的代码生成以下结果。

测试字符

字符值可以表示为整数或引号之间的键盘字符,例如“A”。

此示例使用一些新的逻辑运算符。

程序会将输入的大写字母转换为小写字母:


    #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; 
    } 

上面的代码生成以下结果。