《C语言程序设计与实践(第2版)》——2.3 循环语句

简介: 圆括号内共包含三个部分,它们之间用分号隔开。示例程序中的表达式1为“x = 0”,是初始化部分,仅在进入循环前执行一次。然后计算表示式2,这里表达式2为“x <= 360”,用于控制循环的条件测试部分:这个条件要进行求值,如果所求得的值为真,那么就执行循环体。

本节书摘来自华章出版社《C语言程序设计与实践(第2版)》一书中的第2章,第2.3节,作者:凌云等著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.3 循环语句

2.3.1 while循环语句
在例2-1中,针对每个x值求得对应y值均是以相同的方式计算,故可以用循环语句来重复产生各行输出,每行重复一次。这就是while循环语句的用途。

while (x <= end)
{
    ...
}

while循环语句的执行步骤如下:首先,测试圆括号中的条件。如果条件为真(x小于等于end),则执行循环体(花括号中的语句)。其次,重新测试该条件,如果为真(条件仍然成立),则再次执行该循环体。当该条件测试为假(x大于end)时,循环结束,继续执行跟在该循环语句之后的下一个语句。while语句的循环体可以是用花括号括起来的一个或多个语句,也可以是不用花括号括起来的单条语句,例如,

while (i < j)
   i = 2 * i;

在这两种情况下,我们总是把由while控制的语句向里缩入一个制表位(在书中以四个空格表示),这样就可以很容易地看出循环语句中包含哪些语句。尽管C编译程序并不关心程序的具体形式,但在适当位置采用缩进对齐样式更易于人们阅读程序,这是一个良好的代码书写习惯。同时,我们建议每行只写一个语句,并在运算符两边各放一个空格字符以使运算组合更清楚。花括号的位置不太重要,我们从一些比较流行的风格中选择了一种,读者可以选择自己所合适的风格并一直使用它。
2.3.2 for循环语句
C语言提供了多种循环控制语句,除了2.3.1节提到的while循环外,用得比较多的还有for循环。我们将例2-1(打印一个周期内余弦函数离散值表)中的循环控制用for语句来实现,改写为例2-4。
例2-4 用for语句实现的余弦函数离散值表。

#include <stdio.h>
#include <math.h>
/* 打印一个周期内,余弦函数的离散值表 */
int main()
{
    int x;
    double y;
    for (x = 0; x <= 360; x = x + 30)
    {
        y = cos(x * 3.1415926 / 180);    /* 调用cos函数计算余弦值 */
        printf("%3d\t%9.6f\n", x, y);    /* 调用printf函数输出结果 */
    }
    return 0;
}

这个版本与例2-1执行的结果相同,但看起来有些不同。一个主要的变化是它删去了大部分变量,只留下了一个x和y,其类型分别为int和double。本来用变量表示的下限(x的开始值0)、上限(x的最大允许值360)与步长(每次x增加的大小30)都在新引入的for语句中作为常量出现。for语句也是一种循环语句,是while语句的推广。如果将其与前面介绍的while语句比较,就会发现其操作要更清楚一些。for循环的通用语法如下:

for(表达式1; 表达式2; 表达式3)
    循环体语句

圆括号内共包含三个部分,它们之间用分号隔开。示例程序中的表达式1为“x = 0”,是初始化部分,仅在进入循环前执行一次。然后计算表示式2,这里表达式2为“x <= 360”,用于控制循环的条件测试部分:这个条件要进行求值,如果所求得的值为真,那么就执行循环体。循环体执行完毕后,再执行表达式3,即x = x + 30,加步长,并再次对条件表达式2求值。如果求得的表达式值为真,继续执行循环体,一旦求得的条件值为假,那么就终止循环的执行。像while语句一样,for循环语句的循环体可以是单条语句,也可以是用花括号括起来的一组语句。初始化部分(表达式1)、条件部分(表达式2)与加步长部分(表达式3)均可以是任何表达式。
在程序设计的过程中,可以采用C语言提供的任何一种循环控制语句来实现循环的功能。

相关文章
|
5天前
|
C语言
C语言之循环语句
C语言之循环语句
14 0
|
1天前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
|
2天前
|
存储 缓存 算法
C语言循环语句的探讨与实践
C语言循环语句的探讨与实践
10 1
|
2天前
|
关系型数据库 MySQL 编译器
探索C语言的魅力:从基础到实践
探索C语言的魅力:从基础到实践
13 3
|
3天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
3天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
3天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
3天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
3天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
3天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)