往期回顾
1.【第一章】《认识C语言》
2.【第二章】C语言概述及基本知识1
3.【第二章】C语言概述及基本知识2
4.【第三章】字符串和格式化输入/ 输出
5.【第三章】 printf
6.【第三章】 scanf
7.【第三章】 putchar
8.【第三章】 getchar
9.【第三章】 sizeof
10.【第三章】 strlen
11.【第三章】 define
12.【第四章】运算符第一节
13.【第四章】运算符第二节
14.【第四章】运算符第三节
15.【第四章】运算符第四节
16.【第四章】类型转换
17.【第四章】函数与转化
18.【第五章】while
文章目录
- 往期回顾
- for 介绍
for 介绍
for循环把上述3个行为(初始化、测试和更新)组合在一处。
for (表达式1; 表达式2; 表达式3)
{语句;
}
首先要强调两点:
-
表达式1、表达式2和表达式3之间是用分号
;
隔开的,千万不要写成逗号。 -
for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。
因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属于 for 循环了。
下面来看看它的执行过程:
求解表达式1。
求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。
求解表达式3。
转回上面第2步继续执行。
循环结束,执行 for 语句下面的语句。
从这个执行过程中可以看出,“表达式1”只执行一次,循环是在“表达式2”“表达式3”和“内嵌语句”之间进行的。
例子
#include <stdio.h>
int main(void)
{const int NUMBER = 22;int count;for (count = 1; count <= NUMBER; count++)printf("Be my Valentine!\n");return 0;
}
关键字 for 后面的圆括号中有3个表达式,分别用两个分号隔开。
第1个表达式是初始化,只会在 for循环开始时执行一次。
第2个表达式是测试条件,在执行循环之前对表达式求值。如果表达式为假(本例中,count 大于 NUMBER时),循环结束。
第3个表达式执行更新,在每次循环结束时求值。
上述程序用这个表达式递增 count 的值,更新计数。完整的 for 语句还包括后面的简单语句或复合语句。for 圆括号中的表达式也叫做控制表达式,它们都是完整表达式,所以每个表达式的副作用(如,递增变量)都发生在对下一个表达式求值之前。