1.3 for 语句
对于某个特定任务我们可以采用多种方法来编写程序
下面这段代码也可以实现前面的温度转换程序的功能:
#include <stdio.h>
/* 打印华氏温度—摄氏温度对照表 */
main()
{
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}
这个程序最主要的改进在于它去掉了大部分变量,而只使用了一个 int
类型的变量 fahr
在新引入的 for
语句中,温度的下限、上限和步长都是常量
而计算摄氏温度的表达式现在变成了 printf 函数的第三个参数,它不再是一个单独的赋值语句
以上几点改进中的最后一点是 C 语言中一个通用规则的实例:
在允许使用某种类型变量值的任何场合,都可以使用该类型的更复杂的表达式
因为 printf
函数的第三个参数必须是与 %6.1f
匹配的浮点值,所以可以在此处使用任何浮点表达式
for
语句是一种循环语句,它是对 while
语句的推广
如果将 for
语句与前面介绍的 while
语句比较,就会发现 for
语句的操作更直观一些
圆括号中共包含 3 个部分,各部分之间用分号隔开
第一部分 fahr = 0
是初始化部分,仅在进入循环前执行一次
第二部分 fahr <= 300
是控制循环的测试或条件部分
循环控制将对该条件求值,如果结果值为真(true),则执行循环体
此后将执行第三部分 fahr = fahr + 20
将循环变量 fahr
增加一个步长,并再次对条件求值
如果计算得到的条件值为假(false),循环将终止执行
与 while
语句一样,for
循环语句的循环体可以只有一条语句,也可以是用花括号括起来的一组语句
初始化部分(第一部分)、条件部分(第二部分)与增加步长部分(第三部分)都可以是任何表达式
在实际编程过程中,可以选择 whi1e
与 for
中的任意一种循环语句,主要要看使用哪一种更清晰
for
语句比较适合初始化和增加步长都是单条语句并且逻辑相关的情形,因为它将循环控制语句集中放在一起,且比 while
语句更紧凑