C if...else 语句

本文介绍了 C 语言中的 if 语句 和 if…else 语句。

在 C 语言以及其他任何语言中, if 语句 和 if...else 语句都是最常用的流程控制语句。 if 用于控制在满足某个指定条件的时候执行相关的代码。

C if 语句

C 语言中 if 语句的语法是:

if (test expression)
{
   // code
}

if 语句工作原理

if 语句计算括号 () 内的测试表达式。

  • 如果测试表达式的计算结果为 true,则执行 if 主体内的语句。
  • 如果测试表达式的计算结果为 false, 则不会执行 if 主体内的语句。

if 语句在 C 语言中如何工作?
if 语句工作原理

要了解有关测试表达式计算的更多信息,请查看关系和逻辑运算符

示例 1:if 语句

#include <stdio.h>
int main() {
    int number;

    printf("Enter an integer: ");
    scanf("%d", &number);

    // true if number is less than 0
    if (number < 0) {
        printf("You entered %d.\n", number);
    }

    printf("The if statement is easy.");

    return 0;
}

输出 1

Enter an integer: -2
You entered -2.
The if statement is easy.

当用户输入 -2 时,测试表达式 number < 0 的计算结果为 true。因此,You entered -2. 显示在屏幕上。

输出 2

Enter an integer: 5
The if statement is easy.

当用户输入 5 时,测试表达式 number < 0 被计算结果为 false。因此,不执行 if 主体内部的语句

C if…else 语句

if 语句有一个可选 else 块。 if...else 语句的语法是:

if (test expression) {
    // 测试表达式为 true 时执行这里的代码
}
else {
    // 测试表达式为 false 时执行这里的代码
}

if…else 工作原理

如果测试表达式的计算结果为 true

  • 执行 if 代码块内的语句。
  • 不执行 else 代码块的语句。

如果测试表达式的计算结果为 false

  • 不执行 if 代码块内的语句。
  • 执行 else 代码块的语句。

if&hellip;else 语句在 C 语言中如何工作?
if...else 语句工作原理

示例 2:if…else 语句

#include <stdio.h>
int main() {
    int number;
    printf("Enter an integer: ");
    scanf("%d", &number);

    // True if the remainder is 0
    if  (number%2 == 0) {
        printf("%d is an even integer.",number);
    }
    else {
        printf("%d is an odd integer.",number);
    }

    return 0;
}

输出

Enter an integer: 7
7 is an odd integer.

当用户输入 7 时,测试表达式 number%2 == 0 的计算结果为 false。因此,执行 else 代码块内的语句。

C if…else if 语句

if...else 语句根据测试表达式是 true 还是 false 来执行不同的代码块。有时,必须从两种以上的可能性中做出选择。

if...else if 可以计算多个测试表达式,并根据计算结果执行不同的语句。

if...else if 语句的语法

if (test expression1) {
   // 代码
}
else if(test expression2) {
   // 代码
}
else if (test expression3) {
   // 代码
}
.
.
else {
   // 代码
}

示例 3:C if…else if

#include <stdio.h>
int main() {
    int number1, number2;
    printf("Enter two integers: ");
    scanf("%d %d", &number1, &number2);

    //checks if the two integers are equal.
    if(number1 == number2) {
        printf("Result: %d = %d",number1,number2);
    }

    //checks if number1 is greater than number2.
    else if (number1 > number2) {
        printf("Result: %d > %d", number1, number2);
    }

    //checks if both test expressions are false
    else {
        printf("Result: %d < %d",number1, number2);
    }

    return 0;
}

输出

Enter two integers: 12
23
Result: 12 < 23

嵌套 if…else

if...else 语句中也可以包含另一个 if...else 语句。

示例 4:嵌套 if…else

#include <stdio.h>
int main() {
    int number1, number2;
    printf("Enter two integers: ");
    scanf("%d %d", &number1, &number2);

    if (number1 >= number2) {
      if (number1 == number2) {
        printf("Result: %d = %d",number1,number2);
      }
      else {
        printf("Result: %d > %d", number1, number2);
      }
    }
    else {
        printf("Result: %d < %d",number1, number2);
    }

    return 0;
}

省略大括号

如果 if...else 代码块内只有一个语句,可以不使用

例如,这段代码

if (a > b) {
    printf("Hello");
}
printf("Hi");

可以写成如下代码:

if (a > b)
    printf("Hello");
printf("Hi");

但是一般为了可读性,不建议省略大括号 {}。这是一个好的编码习惯。