《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语言提供的任何一种循环控制语句来实现循环的功能。

相关文章
|
6月前
|
C语言
C语言分支和循环语句
分支语句由`if-else`构成,用于根据不同条件执行相应代码。`else`会与最近未配对的`if`结合,多个条件可用`else if`实现。若连续使用`if`,各条件互不影响。嵌套结构可在`if`中再加入`if-else`。此外,`switch`语句适用于多分支选择(注意表达式不能为浮点数,`case`后需加`break`)。循环语句包括`for`、`while`和`do...while`,注意`do...while`末尾需加分号。循环中,`break`直接终止循环,`continue`跳过当前循环剩余部分,但`for`的语句三仍会执行,而`while`中位置影响效果。
152 0
|
10月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的循环语句
本文介绍了C语言中的三种循环语句:`while`、`do-while`和`for`,并详细解释了它们的语法格式、执行流程及应用场景。此外,还讲解了循环控制语句`break`和`continue`的使用方法。希望这些内容能帮助你在编程道路上不断进步,共同成长!
1074 0
一文彻底搞清楚C语言的循环语句
|
11月前
|
存储 C语言
【C语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
669 16
|
11月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
322 18
|
11月前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
544 3
|
11月前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
422 2
|
11月前
|
存储 编译器 C语言
【C语言程序设计——函数】回文数判定(头歌实践教学平台习题)【合集】
算术运算于 C 语言仿若精密 “齿轮组”,驱动着数值处理流程。编写函数求区间[100,500]中所有的回文数,要求每行打印10个数。根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。如果操作数是浮点数,在 C 语言中是不允许直接进行。的结果是 -1,因为 -7 除以 3 商为 -2,余数为 -1;注意:每一个数据输出格式为 printf("%4d", i);的结果是 1,因为 7 除以 -3 商为 -2,余数为 1。取余运算要求两个操作数必须是整数类型,包括。开始你的任务吧,祝你成功!
214 1
|
C语言
《C语言程序设计》一 第 1 章 程序设计概述
本节书摘来自华章出版社《C语言程序设计》一 书中的第1章,第1.1节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1291 0
|
C语言
《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序
我国古代数学家张邱建在其编写的《算经》里提出了历史上著名的“百钱买百鸡”问题:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?对于这个问题,很多读者在小学或初中的竞赛中可能都见到过,而且通常都采用不定方程求解。
1261 0
|
3月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
1051 0