C 语言基础教程

C 语言流程控制

C 语言函数

C 语言数组

C 语言指针

C 语言字符串

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C 语言 if...else 语句

在本教程中,您将在示例的帮助下了解C语言编程中的if语句(包括if ... else和嵌套if..else)。

C 语言 if语句

ifC语言编程中该语句的语法为:

if (test expression) 
{
   //测试表达式为真时,执行的语句
}

if语句如何工作?

if语句在括号()内评估测试表达式。

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

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

要了解有关何时将测试表达式评估为true(非零值)和false(0)的更多信息,请检查关系运算符逻辑运算符

示例1:if语句

//程序显示一个数字,如果它是负数
#include <stdio.h>
int main() {
    int number;

    printf("输入一个整数: ");
    scanf("%d", &number);

    //如果数字小于0,则为true
    if (number < 0) {
        printf("您输入 %d.\n", number);
    }

    printf("if语句很简单。");

    return 0;
}

输出1

输入一个整数: -25
您输入  -25.
if语句很简单。

当用户输入-25时,测试表达式number<0将评估为true。因此,您输入的-25 将显示在屏幕上。

输出2

输入一个整数: 5
if语句很简单。

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

C 语言 if ... else语句

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

if (test expression) {
    //测试表达式为真时,要执行的语句
}
else {
    // 如果测试表达式为假,则执行的语句
}

if... else语句如何工作?

如果测试表达式(test expression)的计算结果为true,

  • if内的语句被执行。

  • 主体中else的语句从执行中跳过,即else中的语句不会被执行。

如果测试表达式(test expression)的值为false,

  • else内的语句会被执行

  • if主体中的语句会被跳过,即不会执行。

示例2:if ... else语句

// 检查一个整数是奇数还是偶数
#include <stdio.h>
int main() {
    int number;
    printf("输入一个整数: ");
    scanf("%d", &number);

    //如果余数为0,则为true
    if  (number%2 == 0) {
        printf("%d 是一个偶数。",number);
    }
    else {
        printf("%d是一个奇数。",number);
    }

    return 0;
}

输出结果

输入一个整数: 23
23 是一个奇数。

当用户输入23时,(test expression)测试表达式 number%2==0 的评估结果为false。因此,将执行else主体内的语句。

C 语言 if...else if...else 语句

if...else语句执行两个不同的代码,具体取决于测试表达式(test expression)为true还是false。适用于必须从两种以上的可能性中进行选择。

if...else if...else允许您在多个测试表达式之间进行检查并执行不同的语句。

if...else if...else的语法

if (test expression1) {
   // 语句
}
else if(test expression2) {
   // 语句
}
else if (test expression3) {
   // 语句
}
.
.
else {
   // 语句
}

示例3:C 语言if...else if...else示例

//程序使用=、> 或< 符号比较两个整数

#include <stdio.h>
int main() {
    int number1, number2;
    printf("输入两个整数: ");
    scanf("%d %d", &number1, &number2);

    //检查两个整数是否相等
    if(number1 == number2) {
        printf("结果: %d = %d",number1,number2);
    }

    //检查number1是否大于number2。
    else if (number1 > number2) {
        printf("结果: %d > %d", number1, number2);
    }

    //如果以上两个测试表达式均为false,则执行下面语句
    else {
        printf("结果: %d < %d",number1, number2);
    }

    return 0;
}

输出结果

输入两个整数: 12
23
结果: 12 < 23

C 语言 if...else 语句嵌套

可以在另一个if...else语句的主体中包含另一个if...else语句。

示例4:if...else嵌套演示

此程序下面给出使用任一涉及两个整数<,>和=类似if...else阶梯的实例。但是,我们将使用嵌套if...else语句来解决此问题。

#include <stdio.h>
int main() {
    int number1, number2;
    printf("输入两个整数: ");
    scanf("%d %d", &number1, &number2);

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

    return 0;
}

如果if...else语句的主体只有一个语句,可以不需要使用方括号{}。

例如,下面代码

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

等同于

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