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 语言程序的决策语句中,我们使用以下关键字和运算符:ifelseswitchcasedefaultgoto?: 运算符breakcontinue 语句。

在编程中,我们会遇到需要做出决策的情况。基于这些决策,我们决定下一步该做什么。在算法中也会出现类似的情况,我们需要做出一些决策,并基于这些决策执行下一个代码块。

下一条指令取决于布尔表达式,无论条件是 True 还是 False。 C 编程语言将任何非零和非空值假定为 True,如果为零或空,则假定为 False。

C 编程语言提供以下类型的决策语句。

Sr.No. 声明 &说明
1

if 语句

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

2

if...else 语句

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

3

嵌套 if 语句

您可以在一个 ifelse-if 语句中嵌套另一个 ifelse-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 语句

您可以将一个 ifelse-if 语句嵌套在另一个 ifelse-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 语言中,whiledowhilefor 语句用于形成循环。

whiledowhile 形成的循环是条件循环,而 for 语句 形成的循环是计数循环。

循环也由布尔表达式控制。 C 编译器会根据条件决定是否重复执行循环块。

循环中的程序流程也由不同的跳转语句控制。breakcontinue 关键字可终止循环或执行下一次迭代。

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 语言中的决策语句。在后续章节中,我们将对每个决策语句进行详细解释,并配以合适的示例。