C if else 语句

2025年6月17日 | 阅读10分钟

在 C 编程中,决策是程序在不同情况下做出不同反应的基本概念。if-else 语句用于实现决策的论证。它使程序能够评估情况并执行代码块,无论问题是正确还是错误。

if-else 语句允许我们控制执行流程。它帮助程序员构建动态且响应迅速的应用程序,这些应用程序可以处理真实世界的条件,例如用户输入检查、条件验证或程序中各种状态的响应。

C 语言中的 if-else 语句用于根据某些特定条件执行操作。if 块中指定的操作仅在给定条件为真时执行。

C++ 中 if 语句的类型

C 语言中有几种类型的 if 语句。其中一些如下:

  • If 语句
  • If-else 语句
  • if else-if 梯形结构
  • 嵌套 if

C 编程中的每个决策结构都提供独特的功能,可以提高编程灵活性,因为它们执行不同的任务。

1) if 语句

C 编程中,if 语句用于检查某个给定条件并根据该条件的正确性执行某些操作。它主要用于需要针对各种情况执行不同操作的场景。

语法

它具有以下语法:

在这个语法中,

  • if 语句表示一个条件控制结构,它用于仅在指定条件(表达式)评估为真时才执行代码块。
  • 评估括号内的表达式
  1. 如果它返回真(非零),则执行 {} 块内的代码。
  2. 如果它返回假(零),则跳过该块。

if 语句的流程图

if statement in c

C if 语句示例

让我们看一个简单的例子来说明 C 语言中的 if 语句。

示例

编译并运行

输出

Enter a number:4
4 is an even number

另一个查找三个数中最大数的示例

让我们看一个使用 C 语言中的 if 语句查找三个数中最大数的示例。

示例

编译并运行

输出

Enter three numbers: 12 
23 
34
34 is largest

说明

在此示例中,我们使用了三个整数变量 a、b 和 c。之后,它要求用户输入这些数字。一旦输入了数字,它就会检查条件并提供这三个数字中最大的数字。

if 语句的特性

C 语言中 if 语句的几个特性如下:

  • 目的: if 语句允许根据给定表达式是否正确来有条件地执行语句代码。
  • 条件评估: if 语句内的条件应该是一个返回布尔结果(真(非零)或假(零))的表达式。
  • 流控制: 如果条件为真,则执行代码块。如果条件为假,则跳过代码块。
  • 效率: if 语句有助于仅在需要时执行代码,从而避免不必要的计算或操作。

2) if-else 语句

在 C 编程中,if-else 语句用于对单个条件执行两个操作。if-else 语句是 if 语句的扩展,通过它我们可以执行两个不同的操作。如果条件为真,则执行 if 块,否则执行 else 块。

语法

它具有以下语法:

if-else 语句的流程图

if-else statement in c

C if-else 语句示例

让我们看一个使用 C 语言中的 if-else 语句检查数字是偶数还是奇数的简单示例。

示例

编译并运行

输出

Enter a number: 4
4 is an even number
Enter a number: 5
5 is an odd number

另一个检查某人是否有资格投票的示例。

让我们看一个使用 C 语言中的 if-else 语句检查某人是否有资格投票的示例。

示例

编译并运行

输出

Enter your age: 18
You are eligible to vote...
Enter your age: 13
Sorry ... you can't vote

说明

在此示例中,我们根据用户的年龄检查投票资格。它要求用户输入年龄。之后,它使用 if-else 语句:如果年龄为 18 岁或以上,则打印用户有资格投票;否则,它会告知他们没有资格。

if-else 语句的特性

C 语言中 if-else 语句的几个特性如下:

  • 目的: if-else 语句允许在给定表达式评估为真时有条件地执行语句代码块,并在评估不正确时执行备用块。
  • 条件评估: 内部条件应该是一个返回布尔结果(非零)或假(零)的表达式。
  • 流控制: 如果条件为真,则执行第一个块(if 语句之后);否则,执行以下代码块,这确保了两个块中的一个将被执行。
  • 效率: 使用 if-else 语句有助于程序做出特殊决策,通过明确分离替代路径,有助于避免不必要的检查或代码执行。

3) if else-if 梯形结构语句

在 C 编程中,if-else-if 梯形结构语句是 if-else 语句的扩展。它用于需要针对不同条件执行多个情况的场景。if-else-if 梯形结构语句从多个语句中执行一个条件。在这种结构中,可以通过 if-else if 条件序列处理多个情况。它类似于 switch case 语句,如果所有情况都不匹配,则执行 default 而不是 else 块。

语法

它具有以下语法:

C 语言中 else-if 梯形结构语句的流程图

if-else-if ladder statement in c

C if-else-if 梯形结构示例

让我们看一个 C 语言中 if-else-if 语句的示例。

示例

编译并运行

输出

Enter a Number: 4
the number is not equal to 10, 50 or 100
Enter a Number: 50
the number is equal to 50

另一个根据指定分数计算学生成绩的示例

示例

编译并运行

输出

Enter your Marks: 10
Sorry, you are failing...
Enter your Marks: 40
You scored a grade C ...
Enter your Marks: 90
Congrats! You scored grade A ...

说明

在此示例中,我们根据用户输入的分数分配等级。通过一系列 if-else if 条件,它检查分数所在的范围并打印相应的等级消息。如果分数小于或等于 30,则打印不及格消息。

if-else-if 梯形结构的特性

C 语言中 if-else-if 梯形结构的几个特性如下:

  • 目的: if-else-if 梯形结构允许顺序检查多个条件,第一个正确的位置执行该块并释放其余部分。
  • 条件评估: 每个位置都从上到下逐一评估,直到找到一个真实位置。匹配后,后面的情况将被忽略。
  • 流控制: 只有与第一个真条件对应的代码块才会执行;如果没有一个为真,则可选的最终块可以作为默认值执行。
  • 效率: 这种结构有效地处理了许多互斥条件,确保只有一个块运行,这有助于避免冗余检查。

4) 嵌套 if 语句

在 C 语言中,嵌套 if 语句结构在其主体内包含另一个 if 语句。连续的条件检查级别需要使用此语句。

语法

它具有以下语法:

嵌套 if 语句的流程图

if-else-if ladder statement in c

C 嵌套 if 语句示例

让我们看一个示例来说明 C 语言中的嵌套 if 语句。

示例

编译并运行

输出

Enter your marks: 65
Passed

说明

在此示例中,我们演示了 C 语言中的嵌套 if 语句。首先,它检查学生是否及格(分数 >= 50),然后检查他们是否以优异成绩通过(分数 >= 75)。根据结果,它会打印“优秀”、“及格”或“不及格”。

if、if-else、if-else-if 梯形结构之间的区别

C 语言中 if、if-else 和 if-else-if 梯形结构语句之间存在几个区别。一些主要区别如下:

特性if 语句if-else 语句if-else if 梯形结构
目的如果条件为真,则执行一个块。如果条件为真,则执行一个块;否则,执行另一个块。它按顺序检查多个条件,并为第一个真条件执行一个块。
语法单个条件检查具有两种可能结果的条件按顺序检查多个条件
分支数一个分支(条件块)两个分支(if 和 else 块)各种分支(if、else if、else)
执行流程仅当条件为真时才执行该块;否则跳过。它精确地执行两个块中的一个。它只执行与第一个真条件对应的块,并跳过其余的。
何时使用仅当需要检查一个条件时。当在两个结果之间存在二元选择时。当您有多个互斥条件时。
示例用例检查数字是否为正数检查数字是偶数还是奇数根据分数范围进行等级分类。
条件评估次数只评估了一个条件。评估了一个条件,带有一个备用块。按顺序评估多个条件,直到一个为真。

结论

总之,C 程序使用 if 语句作为基本的决策工具,根据不同的情况触发条件响应。不同的变体包括简单的 if 以及 if-else、if-else-if 梯形结构和嵌套 if 以及三元运算符,以适应众多条件。程序员对 if 语句类型的选择决定了代码的可读性、效率和可维护性。

C if-else 语句 MCQ

1) 以下哪个语句适用于 C 语言中的 if-else 代码块?

  1. else 块仅在 if 块中的条件满足时运行。
  2. if 和 else 块都将被处理,无论条件是否满足。
  3. 此条件适用于 if 检查为假的情况。
  4. 每个 if 语句都必须包含一个 else 块。
 

答案: c) 此条件适用于 if 检查为假的情况。


2) 以下关于嵌套 if 的语句中,哪个是正确的?

  1. 嵌套 if 语句中不允许有 else 块。
  2. 一个 else 与最接近的未匹配的 if 匹配。
  3. if 语句只能有一个嵌套级别。
  4. else 分支在另一个 if 语句内部时被跳过。
 

答案: b) 一个 else 与最接近的未匹配的 if 匹配。


3) 如果我们在 C 语言中编写 if 语句时没有包含条件,会发生什么?

  1. 代码将运行 if 语句后面的块,因为条件被视为真。
  2. 代码将无法编译,因为存在语法错误。
  3. 程序将运行,但你不知道它是否以及如何工作。
  4. 此代码块将自行运行,没有任何触发条件。
 

答案: b) 代码将无法编译,因为存在语法错误。


4) 与使用多个 if 语句相比,if-else if 梯形结构如何更好地管理程序控制?

  1. 即使其中一个条件证明为真,也会检查所有条件。
  2. 它只允许运行一个代码块,从第一个给定条件为真时开始。
  3. 它会遍历第一个真 if 语句之后的所有块。
  4. 对于每个假条件,都会执行 else 块。
 

答案: b) 它只允许运行一个代码块,从第一个给定条件为真时开始。


5) 什么时候应该使用 if-else if 梯形结构而不是许多 if 语句?

  1. 如果必须考虑不同的独立条件。
  2. 当几个互斥条件中只有一个可以运行。
  3. 在这些情况下,必须检查和考虑所有条件。
  4. 如果不需要默认条件。
 

答案: b) 当几个互斥条件中只有一个可以运行。


下一个主题C Switch 语句