第六章 循环《C语言程序设计现代方法(第2版)》读书笔记(一)

简介: 第六章 循环《C语言程序设计现代方法(第2版)》读书笔记(一)

章 循环 🚀


循环(loop)是重复执行其他语句(循环体)的一种语句。在C语言中,每个循环都有一

个 控制表达式(controlling expression)。每次执行循环体(循环 重复 一次)时都要对控

制表达式求值。如果表达式为真(即值不为零),那么继续执行循环。

C语言提供了3种重复语句,即while语句、do语句和for语句。

break 语句用来跳出循环并把程序控制传递到循环后的下一条语句, continue语句用来跳过本次循环的剩余部分,而 goto 语句则可以跳到函数内的任何语句上。


6.2 do 语句 🚀


do语句和while语句关系紧密。事实上,do语句本质上就是while语句,只不过其控制表达

式是在每次执行完循环体之后进行判定的。


image.png


6.3 for 语句 🚀


for语句和while语句关系紧密。事实上,除了一些极少数的情况以外,for循环总可

以用等价的while循环替换:


image.png

image.png


6.3.1 for 语句的惯用法 🚀


image.png


6.3.2 在 for 语句中省略表达式 🚀

for语句远比目前看到的更加灵活。通常for语句用三个表达式控制循环,但是有一些for

循环可能不需要这么多, 因此C语言允许省略任意或全部的表达式。

如果省略第一个表达式,那么在执行循环前没有初始化的操作:


image.png


image.png


6.3.3 C99 中的 for 语句 🚀

       在C99中,for语句的第一个表达式可以替换为一个声明,这一特性使得程序员可以声明一个用于循环的变量:


image.png


6.3.4 逗号运算符 🚀

有些时候,我们可能喜欢编写有两个(或更多个)初始表达式的for语句,或者希望在每

次循环时一次对几个变量进行自增操作。使用 逗号表达式(comma expression)作为for语句中第一个或第三个表达式可以实现这些想法。


image.png


因为逗号表达式的左操作数在右操作数之前求值,所以赋值运算i = 1、j = 2和k = i + j是从左向右进行的。

       提供逗号运算符是为了在C语言要求只能有一个表达式的情况下可以使用两个或多个表达式。换句话说,逗号运算符允许将两个表达式“粘贴”在一起构成一个表达式。(注意与复合语句的相似之处,后者允许我们把一组语句当作一条语句来使用。)

       需要把多个表达式粘在一起的情况不是很多。正如后面的某一章将介绍的那样,某些宏定义( 14.3节)可以从逗号运算符中受益。除此之外,for语句是唯一可以发现逗号运算符的地方。例如,假设在进入for语句时希望初始化两个变量。可以把原来的程序


image.png

相关文章
|
3天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
20 5
|
4天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
13 3
|
6天前
|
传感器 人工智能 物联网
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
【C 言专栏】C 语言与硬件交互的方法
|
9天前
|
算法 C语言
【C 言专栏】C 语言文件操作的技巧与方法
【4月更文挑战第30天】本文介绍了C语言文件操作的关键技巧,包括文件的打开与关闭(使用`fopen`和`fclose`函数),读取(`fgetc`、`fgets`和`fread`)和写入(`fputc`、`fputs`和`fwrite`)操作。此外,还讨论了文件指针移动(`fseek`)、错误处理、文件权限和格式等问题。文中提供了一个简单的读写文件的示例,并提到了高级技巧如随机访问、文件缓冲和截断。掌握这些技能将有助于提升C语言编程中的文件处理能力。
|
12天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
12天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
12天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
12天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
C语言
《C语言程序设计》一 第 1 章 程序设计概述
本节书摘来自华章出版社《C语言程序设计》一 书中的第1章,第1.1节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1106 0
|
C语言
《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序
我国古代数学家张邱建在其编写的《算经》里提出了历史上著名的“百钱买百鸡”问题:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?对于这个问题,很多读者在小学或初中的竞赛中可能都见到过,而且通常都采用不定方程求解。
1108 0