C Primer Plus 第六章

本文详细介绍了计算机科学中的程序流程控制,包括while、for循环和do-while循环的结构与工作原理。强调了循环中的条件测试、迭代更新以及如何避免无限循环。同时,提到了关系运算符在比较中的作用,特别是浮点数比较的注意事项。此外,还讨论了逗号运算符在循环中的应用以及嵌套循环的概念,展示了如何通过循环来处理多维数据。
摘要由CSDN通过智能技术生成

        对于计算机科学而言,一门语言应该提供三种形式的程序流:

        (1)执行语句序列

        (2)循环

        (3)分支

        一、while循环

        (1)while循环通用形式

while(expression)
{
    statement;
}

        (2)expression是值之间的比较,可以使用任何表达式。若expression为真,执行statement一次,然后再次判断expression。在expression为假之前,循环的判断和执行一直重复进行。每一次循环都被称为一次迭代

        (3)在构建while循环时,必须让测试表达式的值有变化,表达式的值最终要为假。否则,循环就不会终止。

        (4)只有在对测试条件求值的时候,才决定是终止还是继续循环。

        (5)while循环是使用入口条件的有条件循环。必须满足测试条件才能进入循环体。所以while循环可能一次都不执行。

        (7)while循环的测试条件属于完整表达式,是程序的序列点,表达式的所有副作用都在执行下一条语句之前进行。

        (6)只有在测试条件后面的单独语句(简单或复合)才是循环部分。

while(scanf("%d", &num) == 1)
    ;                           //跳过整数输入

        在C语言中,单独的分号表示空语句,什么也不做。

        二、用关系运算符和表达式比较大小

        (1)while循环经常依赖测试表达式作比较,这样的表达式被称为关系表达式,出现在关系表达式中间的运算符被称为关系运算符

        (2)在关系运算符中,需要特别留意的是判等运算符==的形式。在C语言中,两个紧邻的等号组成的运算符(==)表示相等,一个单独的等号(=)表示赋值运算符。如果待比较的值是一个常量,可以将该常量放在==的左侧,有助于编译器捕捉错误。

        (3)在比较浮点数时,尽量只是用大于(>)小于(<),因为浮点数在计算机中通常是一个近似值,会导致逻辑上应该相等的两个数实际上却不相等。

        (4)在C语言中,非零为真,零值为假

        (5)关系运算符的优先级低于算术运算符,高于赋值运算符

        三、for循环

        for循环的通用形式:

for(initialize; test; update)
{
    statement;
}

        (1)for循环将初始化、测试和更新组合在一处,三个表达式之间以分号隔开。

        (2)初始化表达式只在for循环开始时执行一次;测试条件在执行循环之前对表达式求值,若值为假,循环结束;更新表达式在每次循环体结束时求值,然后对测试条件求值。

        (3)for圆括号中的表达式也叫控制表达式,都是完整表达式,所以每个表达式的副作用都在开始执行下一个表达式之前发生。

        (4)可以省略for圆括号中的一个或多个表达式,但是不能省略分号

int count;

count = 0;     //初始化

for(; count < 10; )   //圆括号中只有一个测试条件
{
    printf("OK!\n");
    
    count++;    //更新
}

        四、逗号运算符

        逗号运算符扩展了for循环的灵活性,以便在循环头中包含更多的表达式。但逗号运算符并不局限于在for循环中使用。

        (1)逗号运算符是一个序列点,保证被它分隔的表达式从左向右求值。(非常重要

        (2)整个逗号表达式的值是最右侧项的值。

x = (y = 3, z = y * y, 55);   //x = 55

num = 345, 678;  //这个表达式被逗号分为num = 345和678两部分,整个表达式的值是678

        五、出口条件循环:do-while

        do-while通用形式

do{

    statement;

}while(expression);   //()之后一定要以分号结尾

        (1)do-while在循环的每次迭代之后检查测试条件,所以do-while循环的循环体至少能够执行一次

        (2)在while(expression)之后,一定要留意,必须以分号结尾

        六、嵌套循环

        嵌套循环是指在一个循环中包含另一个循环,常被用于按行和列显式数据,一个循环负责处理行,另一个循环负责处理一行中的所有列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值