第七章、迭代语句
迭代的概念:
迭代(Iteration)就是通过不断重复和改进来逐步接近或达成目标的过程。迭代通常每次重复都会根据前一次的反馈进行调整优化,最终实现目标。
迭代语句(Iteration statements)也叫循环语句。迭代语句用于将一条语句(可以是一条复合语句)在满足特定条件时重复执行多次,避免代码重复来实现复杂的功能。
C 语言中的迭代语句有 3 种:
- for 语句
- while 语句
- do-while语句
迭代语句的语法如下:
while ( expression ) statement
do statement while ( expression ) ;
for ( expression ; expression ; expression ) statement
for ( declaration expression ; expression ) statement
以下会详细讲解上述语法。
1. for 语句
for 语句通常用于控制一段代码(一条语句或复合语句)的执行次数,直到满足某个条件为止的循环。
for 语句的语法有两种
1、没有变量声明的 for 语句
for (表达式1; 表达式2; 表达式3)
语句
2、带有变量声明的 for 语句
for (变量声明1 表达式2; 表达式3)
语句
语法中:
for是关键字。
for 语句的执行过程:
- 先执行 表达式1 或 变量声明1 此部分通常对循环中需要使用的变量进行创建(仅适用于带有变量声明的语法2)和初始化。
- 计算 表达式2,根据计算结果值来决定是否执行语句:
- 当表达式2的计算结果为非零值时,则执行语句。
- 当表达式2的计算结果为零值时(整数:
0、浮点数:0.0、字符:'\0'或空指针:(void*)0),此 for 语句执行结束。
- 当 语句 部分正常执行完毕后则执行 表达式3,然后继续回到第二步计算 表达式2。
总结:
- 表达式1 或 变量声明1 通常用来初始化循环变量。
- 表达式2 通常用来判断是否继续循环。
- 表达式3 通常用来更新循环变量。
- 语句 是循环的执行体。
说明:
- 表达式1 或 变量声明1 会在 for 语句运行时最先运行,且只运行一次。
- 变量声明1 中可以声明变量,此处声明的变量的生命周期属于此 for 语句内,不能在此 for 语句之外使用。
- 变量声明1 必须以分号结束,且只能有一个分号作为结束,如果有多个变量声明则使用逗号(
,)分隔。 - 表达式1 可以为空。
- 变量声明1 可以为空,为空时需要补充一个分号(
;)。 - 表达式2 可以为空。为空时表示此表达式则只为真值(
1),等同于添加一个1作为表达式2。 - 表达式3 可以为空。
- 语句 不能为空,如果不需要执行任何语句,需要添加空语句
;或 空复合语句{}。
示例
打印 1 到 10 十个整数。
#include <stdio.h>
int main(int argc, char *argv[]) {
int number; // 用于控制循环次数的变量
for (number = 1; number <= 10; number ++) {
printf("%d\n", number);
}
printf("程序退出前,number:%d\n", number); // 此时 number 的值时多少?
return 0;
}
也可以写成
#include <stdio.h>
int main(int argc, char *argv[]) {
for (int number = 1; number <= 10; number ++) {
printf("%d\n", number);
}
// printf("程序退出前,number:%d\n", number); // 此处打印number 会报错。
return 0;
}
练习1:
打印 1 - 101 之间所有的偶数。
练习2:
打印 1 - 100 之间所有的奇数的和。