C if...else 语句

C if 语句

C编程中if语句的语法是

if (test expression) 
{
   // code
}

if语句如何工作?

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

  • 如果测试表达式计算为真,则执行if块内的语句。
  • 如果测试表达式计算为假,则不执行if块内的语句。
How if statement works in C programming?
if 语句的工作原理

要了解更多关于测试表达式何时计算为真(非零值)和假(0)的信息,请查看关系逻辑运算符


示例 1:if 语句

// Program to display a number if it is negative

#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 计算为真。因此,屏幕上显示 You entered -2

输出 2

Enter an integer: 5
The if statement is easy.

当用户输入 5 时,测试表达式 number<0 计算为假,不执行if块内的语句。


C if...else 语句

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

if (test expression) {
    // run code if test expression is true
}
else {
    // run code if test expression is false
}

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

如果测试表达式计算为真,

  • 则执行if块内的语句。
  • 则跳过执行else块内的语句。

如果测试表达式计算为假,

  • 则执行else块内的语句。
  • 则跳过执行if块内的语句。
How if...else statement works in C programming?
if...else 语句的工作原理

示例 2:if...else 语句

// Check whether an integer is odd or even

#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 计算为假。因此,执行else块内的语句。


C if...else 级联

if...else语句根据测试表达式是真还是假来执行不同的代码。有时,需要在多个可能性之间做出选择。

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


if...else 级联语法

if (test expression1) {
   // statement(s)
}
else if(test expression2) {
   // statement(s)
}
else if (test expression3) {
   // statement(s)
}
.
.
else {
   // statement(s)
}

示例 3:C if...else 级联

// Program to relate two integers using =, > or < symbol

#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

下面的程序使用<>=将两个整数进行比较,类似于if...else级联的示例。但是,我们将使用嵌套的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");

在结束之前,让我们来测试一下您对 C if else 的知识!您能解决以下挑战吗?

挑战

编写一个函数,根据学生的分数来判断其及格或不及格。

  • 如果学生的分数达到50分或更高,则及格。
  • 如果分数达到50分或更高,则返回"Pass",否则返回"Fail"
  • 例如,输入55时,返回值应为"Pass"

视频:C if else 语句

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战