第一章 导言(1.3-1.4)

本文的内容仍然是基于前面的同一题目(温度转换表)进行修改,并对修改内容进行讲解,前面已经讲解过的将不再进行解释。
修改:一:将while 语句的功能使用for语句实现
二:符号常量

1.3for语句

for语句在C语言特性那一节我有介绍过。

#include<stdio.h>
main()
{
	int F;
	for (F = 0; F <= 300; F = F + 10)
	{
		printf("%3d%6.1f\n",F,(5.0/9.0)*(F-32));
	}
	system("pause");
}

在这里插入图片描述
这个程序与上节中介绍的程序执行结果相同,但程序本身却有所不 同。最主要的改进在于它 去掉了大部分变量,而只使用了一个 int 类型的变量 F。在新引入的 for 语句中,温度 的下限、上限和步长都是常量,而计算摄氏温度的表达式现在变成了 printf 函数的第三个参数((5.0/9.0)*(F-32)),它不再是一个单独的赋值语句。
以上几点改进中的最后一点是 C 语言中一个通用规则的实例:在允许使用某种类型变量值的任何场合,都可以使用该类型的更复杂的表达式。因为 printf 函数的第三个参数必须是与%6.1f 匹配的浮点值, 所以可以在此处使用任何浮点表达式。
for 语句是一种循环语句,它是对 while 语句的推广。如果将 for 语句与前面介绍的 while 语句比较,就会发现 for 语句的操作更直观一些。圆括号中共包含 3 个部分,各部分之间用分号隔开。
第一部分F = 0
是初始化部分,仅在进入循环前执行一次。
第二部分F<= 300
是控制循环的测试或条件部分。循环控制将对该条件求值,如果结果值为真(true)(有时理解为1),则执行 循环体(本例中的循环体仅包含一个 printf 函数调用语句)。此后将执行
第三部分F= F + 10
以将循环变量 F增加一个步长,并再次对条件求值。如果计算得到的条件值为假(faise)(有时理解为0), 循环将终止执行。与 while 语句一样,for 循环语句的循环体可以只有一条语句,也可以是用花括号括起来 的一组语句。初始化部分(第一部分)、条件部分(第二部分)与增加步长部分(第三部分)都可以是任何表达式。

在实际编程过程中,可以选择 while 与 for 中的任意一种循环语句,主要要看使用哪一 种更清晰。for 语句比较适合初始化和增加步长都是单条语句并且逻辑相关的情形,因为它将循环控制语句集中放在一起,且比 while 语句更紧凑。

1.4符号常量

在程序中使 用 300、20 等类似 的"幻数"并不是一个好习惯,它们几乎无法向以后阅读该程序的人提供什么信息,而且使程序的修改变得更加困难。 处理这种幻数的一种方法是赋予它们有意义的名字。#define 指令可以把符号名(或称为符号常量)定义为一个特定的字符串:
(也将它称为宏,关于宏的更多内容以后会有具体的讲解,此处我们仅仅讨论书上的内容)
{想提前了解的可以参考这两篇博文
C宏二三事

C宏定义详解}
#define 名字 替换文本
在该定义之后,程序中出现的所有在#define 中定义的名字(既没有用 引号引起来,也不是 其它名字的一部分)都将用相应的替换文本替换。其中,名字与普通变量名的形式相同:它们都是以字母打头的字 母和数字序列;替换文本可以是任何字符序列,而不仅限于数字

#include<stdio.h>
#define LOWER 0 /* lower limit of table */
#define UPPER 300 /* upper limit */
#define STEP 10 /* step size */
main()
{
	int F;
	for (F = LOWER; F <= UPPER; F = F + STEP)
	{
		printf("%3d%6.1f\n",F,(5.0/9.0)*(F-32));
	}
	system("pause");
}

在这里插入图片描述其中,LOWER、UPPER 与 STEP 都是符号常量,而非变量,因此不需要出现在声明中。符号常量名通常用大写字母拼写,这样可以很容易与用小写字母拼写的变量名相区别。注意:#define 指令行的末尾没有分号

发布了9 篇原创文章 · 获赞 3 · 访问量 209

猜你喜欢

转载自blog.csdn.net/qq_45455488/article/details/103999450