C - 决策语句
包括 C 语言在内的每种编程语言都包含决策语句来支持条件逻辑。C 语言提供了多种在代码中添加决策的替代方案。
任何进程都是三种逻辑的组合 -
- 顺序逻辑
- 决策或分支
- 重复或迭代
计算机程序本质上是顺序的,默认情况下从上到下运行。C 语言中的决策语句提供了另一种执行方式。您可以要求重复执行一组语句,直到满足某个条件为止。
决策结构根据条件控制程序流程。它们是设计复杂算法的重要工具。
在 C 语言程序的决策语句中,我们使用以下关键字和运算符:if、else、switch、case、default、goto、?: 运算符、break 和 continue 语句。
在编程中,我们会遇到需要做出决策的情况。基于这些决策,我们决定下一步该做什么。在算法中也会出现类似的情况,我们需要做出一些决策,并基于这些决策执行下一个代码块。
下一条指令取决于布尔表达式,无论条件是 True 还是 False。 C 编程语言将任何非零和非空值假定为 True,如果为零或空,则假定为 False。
C 编程语言提供以下类型的决策语句。
Sr.No. | 声明 &说明 |
---|---|
1 | if 语句 if 语句由一个布尔表达式后跟一个或多个语句组成。 |
2 | if...else 语句 if 语句后可以跟一个可选的 else 语句,该语句在布尔表达式为 false 时执行。 |
3 | 嵌套 if 语句 您可以在一个 if 或 else-if 语句中嵌套另一个 if 或else-if 语句。 |
4 | switch 语句 switch 语句允许测试变量是否与值列表相等。 |
5 | 嵌套 switch 语句 您可以在一个 switch 语句中使用另一个 switch 语句。 |
C 语言编程中的 If 语句
if 语句 用于根据结果 True 或 False 在两条路径之间做出判断。它由以下流程图表示 -

语法
if (Boolean expr){ expression; . . . }
if 语句由一个布尔表达式后跟一个或多个语句组成。
C 语言编程中的 If...else 语句
ifelse 语句 在条件不满足时提供替代路径。

语法
if (Boolean expr){ expression; . . . } else{ expression; . . . }
if 语句后可以跟可选的 else 语句,当布尔表达式为 false 时执行该语句。
C 语言编程中的嵌套 If 语句
嵌套 if 语句 用于构建复杂的决策树,通过评估多个嵌套条件来实现细致的程序流程。

您可以将一个 if 或 else-if 语句嵌套在另一个 if 或 else-if 语句中。
C 语言编程中的 Switch 语句
A switch 语句通过对单个变量进行多个值匹配,并根据匹配结果执行特定代码,从而简化了多路选择。它允许测试变量与一系列值是否相等。

语法
switch(expression) { case constant-expression : statement(s); break; /* optional */ case constant-expression : statement(s); break; /* optional */ /* 你可以有任意数量的 case 语句 */ default : /* Optional */ statement(s); }
与 if 语句一样,您可以在一个 switch 语句中使用另一个 switch 语句。
C 语言编程中的 ?: 运算符
我们在上一章中介绍了 条件运算符 (?:),它可用于替换 if-else 语句。它将 if-else 语句压缩为单个表达式,从而提供紧凑且可读的代码。
它的一般形式如下:
Exp1 ? Exp2 : Exp3;
其中 Exp1、Exp2 和 Exp3 是表达式。注意冒号 (:) 的使用和位置。"?"表达式的值确定如下 -
Exp1 会被求值。如果它为真,则 Exp2 会被求值,并成为整个 ? 表达式 的值。
如果 Exp1 为假,则 Exp3 会被求值,其值将成为 : 表达式 的值。
您可以使用 ? 运算符模拟嵌套的 if 语句。您可以在现有 ? 运算符的 true 和/或 false 操作数中使用其他三元运算符。
算法也可以包含迭代逻辑。在 C 语言中,while、dowhile 和 for 语句用于形成循环。
while 和 dowhile 形成的循环是条件循环,而 for 语句 形成的循环是计数循环。
循环也由布尔表达式控制。 C 编译器会根据条件决定是否重复执行循环块。
循环中的程序流程也由不同的跳转语句控制。break 和 continue 关键字可终止循环或执行下一次迭代。
C 语言编程中的 Break 语句
在 C 语言中,break 语句 不仅用于循环,也用于 switchcase 语句中。在循环中使用时,它会放弃重复操作。

C 语言编程中的 Continue 语句
在 C 语言中,continue 语句 会执行循环的条件测试和递增部分。

C 语言编程中的 goto 语句
C 语言中也有一个 goto 关键字。您可以将程序流重定向到程序中任何带标签的指令。
以下是 C 语言中 goto 语句的语法 -
goto label; .. . label: statement;

使用 goto 语句,可以将流程定向到任意上一步或后续步骤。
在本章中,我们简要概述了 C 语言中的决策语句。在后续章节中,我们将对每个决策语句进行详细解释,并配以合适的示例。