C 语言编程教程

C 语言首页

C 语言基础

C 语言概述 C 语言特性 C 语言发展历史 C 语言下载安装和环境配置 C 语言程序结构 C 语言 Hello World C 编译过程 C 注释 C 标记 C 关键字 C 标识符 C 用户输入 C 基本语法 C 数据类型 C 变量 C 整数提升 C 类型转换 C 类型转换 C 布尔值

C 语言中的常量和文字

C 常量 C 字面量 C 转义序列 C 格式说明符

C 语言中的运算符

C 运算符 C 算术运算符 C 关系运算符 C 逻辑运算符 C 位运算符 C 赋值运算符 C 一元运算符 C 递增和递减运算符 C 三元运算符 C sizeof 运算符 C 运算符优先级 C 其他运算符

C 语言中的决策

C 决策 C if 语句 C if...else 语句 C 嵌套 if 语句 C switch 语句 C 嵌套 switch 语句

C 语言中的循环

C 循环 C While 循环 C For 循环 C Do...while 循环 C 嵌套循环 C 无限循环 C Break 语句 C Continue 语句 C goto 语句

C 语言中的函数

C 函数 C Main 函数 C 按值调用函数 C 按引用调用函数 C 嵌套函数 C 可变参数函数 C 用户定义函数 C 回调函数 C return 语句 C 递归

C 语言中的作用域规则

C 作用域规则 C 静态变量 C 全局变量

C 语言中的数组

C 数组 C 数组的属性 C 多维数组 C 将数组传递给函数 C 从函数返回数组 C 可变长度数组

C 语言中的指针

C 指针 C 指针和数组 C 指针的应用 C 指针运算 C 指针数组 C 指向指针的指针 C 将指针传递给函数 C 从函数返回指针 C 函数指针 C 指向数组的指针 C 指向结构体的指针 C 指针链 C 指针 vs 数组 C 字符指针和函数 C NULL 指针 C void 指针 C 悬垂指针 C 解引用指针 C Near、Far 和 Huge 指针 C 指针数组的初始化 C 指针与多维数组

C 语言中的字符串

C 字符串 C 字符串数组 C 特殊字符

C 语言的结构体和联合

C 结构体 C 结构体和函数 C 结构体数组 C 自引用结构 C 查找表 C 点 (.) 运算符 C 枚举(或 enum) C 结构填充和打包 C 嵌套结构 C 匿名结构和联合 C 联合 C Bit 位字段 C Typedef

C 语言中的文件处理

C 输入和输出 C 文件 I/O(文件处理)

C 语言中的预处理器

C 预处理器 C #pragma 编译指示 C 预处理器操作符 C 宏 C 头文件

C 语言中的内存管理

C 内存管理 C 内存地址 C 存储类

C 其他主题

C 错误处理 C 可变参数 C 命令执行 C 数学函数 C static 静态关键字 C 随机数生成 C 命令行参数

C 语言编程资源

C 语言问题与解答答案 C 语言快速指南 C 语言速查表 C 语言实用资源 C 语言讨论


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 在两条路径之间做出判断。它由以下流程图表示 -

C 语言中的决策语句

语法

if (Boolean expr){
   expression;
   . . .
}

if 语句由一个布尔表达式后跟一个或多个语句组成。

C 语言编程中的 If...else 语句

ifelse 语句 在条件不满足时提供替代路径。

C if...else 语句

语法

if (Boolean expr){
   expression;
   . . .
}
else{
   expression;
   . . .
}

if 语句后可以跟可选的 else 语句,当布尔表达式为 false 时执行该语句。

C 语言编程中的嵌套 If 语句

嵌套 if 语句 用于构建复杂的决策树,通过评估多个嵌套条件来实现细致的程序流程。

嵌套 if 语句

您可以将一个 if 或 else-if 语句嵌套在另一个 if 或 else-if 语句中。

C 语言编程中的 Switch 语句

A switch 语句通过对单个变量进行多个值匹配,并根据匹配结果执行特定代码,从而简化了多路选择。它允许测试变量与一系列值是否相等。

C 语言中的 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 break statement

C 语言编程中的 Continue 语句

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

C continue statement

C 语言编程中的 goto 语句

C 语言中也有一个 goto 关键字。您可以将程序流重定向到程序中任何带标签的指令。

以下是 C 语言中 goto 语句的语法 -

goto label;
..
.
label: statement;
C goto 语句

使用 goto 语句,可以将流程定向到任意上一步或后续步骤。

在本章中,我们简要概述了 C 语言中的决策语句。在后续章节中,我们将对每个决策语句进行详细解释,并配以合适的示例。