【C语言】学习笔记 第6章 循环 6.3 for语句 ゝ一纸荒年。 2024-03-22 08:44 34阅读 0赞 ### 【C语言】学习笔记 ### #### 文章目录 #### * * 【C语言】学习笔记 * * 第6章 循环 * * 6.3 for语句 * * 6.3.1 for语句的惯用法 * 6.3.2 在for语句中省略表达式 * 6.3.3 C99中的for语句 * 6.3.4 逗号运算符 #### 第6章 循环 #### ![在这里插入图片描述][9654f8b4214d488db2db79507b0fb78e.png_pic_center] 循环(loop)是重复执行其他语句(循环体)的一种语句。在 C 语言中,每个循环都有一 个控制表达式(controlling expression)。每次执行循环体(循环重复一次)时都要对控制 表达式求值。如果表达式为真(即值不为零),那么继续执行循环。 C 语言提供了 3 种重复语句,即 while 语句、do 语句和 for 语句 ##### 6.3 for语句 ##### C 语言循环中最后一种循环,也是功能最强大的一种循环:for 语句。 for 语句的格式如下所示: for (声明或者表达式 1; 表达式 2; 表达式 3) 语句 其中表达式 1、表达式 2 和表达式 3 全都是表达式。 事实上,除了一些极少数的情况以外,for 循环总 可以用等价的 while 循环替换 表达式 1; while (表达式 2) { 语句 表达式 3; } 就像上面这个模式显示的那样,表达式 1 是循环开始执行前的初始化步骤,只执行一次;表达 式 2 用来控制循环的终止(只要表达式 2 的值不为零,循环就会持续执行);表达式 3 是每次循 环中最后被执行的一个操作。 ###### 6.3.1 for语句的惯用法 ###### 对于“向上加”(变量自增)或“向下减”(变量自减)的循环来说,for 语句通常是最好 的选择。对于向上加或向下减共 n 次的情况,for 语句经常会采用下列形式中的一种。 * 从0向上加到n-1: for ( i = 0; i < n; i++) ... * 从1向上加到n: for ( i = 1; i <= n; i++) ... * 从n-1向下减到0: for ( i = n - 1; i >= 0; i--) ... * 从n向下减到1: for ( i = n; i > 0; i--) ... ###### 6.3.2 在for语句中省略表达式 ###### for 语句远比目前看到的更加灵活。通常 for 语句用三个表达式控制循环,但是有一些 for 循环可能不需要这么多,因此 C 语言允许省略任意或全部的表达式。 如果省略第一个表达式,那么在执行循环前**没有初始化的操作**: i = 10; for (; i > 0; --i) printf("T minus %d and counting\n", i); > 注意,保留第一个表达式和第二个表达式之间的分号。即使省略掉某些表达式,控制 表达式也必须始终有两个分号。 如果省略了 for 语句中的第三个表达式,循环体需要确保第二个表达式的值最终会变为假。【在循环体中进行操作】 当 for 语句同时省略掉第一个和第三个表达式时,它和 while 语句没有任何分别。 例如: for (; i > 0;) printf("T minus %d and counting\n", i--); 等价于 while (i > 0) printf("T minus %d and counting\n", i--); 如果省略第二个表达式,那么它默认为真值,因此 for 语句不会终止(除非以某种其他形 式停止) 【建立无限循环】`for ( ; ; )...` ###### 6.3.3 C99中的for语句 ###### 在 C99 中,for 语句的第一个表达式可以替换为一个声明,这一特性使得程序员可以声明 一个用于循环的变量: for (int i = 0; i < n; i++) ... > C99之前是不允许这样做的 for 语句声明的变量不可以在循环外访问(**在循环外不可见**),如果想要在for 循环退出后,使用i ,那么就使用C99 之前那种语句格式。 顺便提一下,for 语句可以声明多个变量,**只要它们的类型相同**: for (int i = 0, j = 0; i < n; i++) ... ###### 6.3.4 逗号运算符 ###### 使用逗号表达式(comma expression)可以作为 for 语句 中第一个或第三个表达式, 逗号表达式的格式如下所示: 表达式 1, 表达式 2 这里的表达式 1 和表达式 2 是两个任意的表达式。【从左往右计算,最终得值是表达式2(n)的值】 逗号表达式的计算要通过两步来实现: 1. 计算表达式 1 并且扔掉计算出的值; 2. 第二步,计算**表达式 2,把这个值作为整个表达 式的值**。对表达式 1 的计算应该始终会有副作用;如果没有,那么表达式 1 就没有了存在的 意义。 【记得】逗号运算符的优先级低于所有的其他运算符。 提供逗号运算符是为了在 C 语言要求只能有一个表达式的情况下,可以使用两个或多个表 达式。换句话说,逗号运算符允许将两个表达式“粘贴”在一起构成一个表达式。 利用附加的逗号运算符, for 语句可以初始化更多的变量。 【程序】显示平方表(改进版) #include<stdio.h> int main(void) { int n; printf("This program prints a table of squares.\n"); printf("Enter number of entries in table: "); scanf("%d", &n); for (int i = 1; i <= n; i++) { printf("%10d%10d\n", i, i * i); } return 0; } ![在这里插入图片描述][de5c2f2e2a6f420ebac3b0067a9b055f.png_pic_center] 我们还可以像下面这样实现: #include<stdio.h> int main(void) { int n, odd = 3, i = 1; printf("This program prints a table of squares.\n"); printf("Enter number of entries in table: "); scanf("%d", &n); for (int square = 1; i <= n; odd += 2) { printf("%10d%10d\n", i, square); ++i; square += odd; } return 0; } ![在这里插入图片描述][cdbf0164dbf5468caaac1a2ba560ce12.png_pic_center] 可以看到for 语句是非常灵活的。 [9654f8b4214d488db2db79507b0fb78e.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/74e5dd1e637a4be5884cf5a8a6dd4fb8.png [de5c2f2e2a6f420ebac3b0067a9b055f.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/4cc88e0174b6411f831fc1356349027d.png [cdbf0164dbf5468caaac1a2ba560ce12.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/480b2a00e8114785bf466d8991e103c4.png
相关 【C语言】学习笔记 第6章 循环 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 编程题 第6章 循环 ![在这里 左手的ㄟ右手/ 2024年03月22日 08:44/ 0 赞/ 72 阅读
相关 【C语言】学习笔记 第6章 循环 6.5 空语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 6.5 空语句 第6章 循环 ! 水深无声/ 2024年03月22日 08:44/ 0 赞/ 69 阅读
相关 【C语言】学习笔记 第6章 循环 6.3 for语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 6.3 for语句 ゝ一纸荒年。/ 2024年03月22日 08:44/ 0 赞/ 35 阅读
相关 【C语言】学习笔记 第6章 循环 6.4 退出循环 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 6.4 退出循环 末蓝、/ 2024年03月22日 08:44/ 0 赞/ 14 阅读
相关 【C语言】学习笔记 第6章 循环 6.1 while语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 6.1 while语句 绝地灬酷狼/ 2024年03月22日 08:43/ 0 赞/ 53 阅读
相关 【C语言】学习笔记 第6章 循环 6.2 do语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 6.2 do语句 第6章 循环 爱被打了一巴掌/ 2024年03月22日 08:43/ 0 赞/ 20 阅读
相关 【C语言】学习笔记 第5章 选择语句 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第5章 选择语句 编程题 第5章 选择语句 ! 布满荆棘的人生/ 2024年03月22日 08:43/ 0 赞/ 51 阅读
相关 【C语言】学习笔记 第5章 选择语句 5.2 if语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第5章 选择语句 5.2 if语句 素颜马尾好姑娘i/ 2024年03月22日 08:43/ 0 赞/ 62 阅读
相关 C语言回顾day5(第6章 三种循环语句) 文章目录 while循环(入口条件循环) scanf的返回值作为while条件 空语句作为循环体:跳过整数输入 (这个功能也可以通过con 待我称王封你为后i/ 2023年07月03日 06:15/ 0 赞/ 36 阅读
相关 【学习笔记】10、循环语句—for 循环语句 循环语句有两种写法:for和while。 for循环 for循环和编程语言中常见的循环不大一样,它实际上不是一个循环,而是一个遍历功能,它会依次对一个可 水深无声/ 2022年09月12日 06:59/ 0 赞/ 198 阅读
还没有评论,来说两句吧...