第六章 C控制语句:循环

目录

6.1 再探while循环

<details>
<summary>点击查看代码</summary>

`/* summing.c -- sums integers entered interactively */
#include <stdio.h>
int main(void)
{
    long num;
    long sum = 0L;      /* initialize sum to zero   */
    int status;
    
    printf("Please enter an integer to be summed ");
    printf("(q to quit): ");
    status = scanf("%ld", &num);
    while (status == 1) /* == means "is equal to"   */
    {
        sum = sum + num;
        printf("Please enter next integer (q to quit): ");
        status = scanf("%ld", &num);
    }
    printf("Those integers sum to %ld.\n", sum);

    return 0;
}`

</details>
该程序关键一点:status = scanf("%ld", &num);

若用户输入的不是数字,scanf()会读取失败并返回0,若在转换值之前遇到了问题(如检测到文件结尾或硬件问题),则返回-1。

——scanf的双重特性。

6.2 真值的问题

误用=会导致无限循环。

_Bool类型:只能储存1和0。若把非零值赋给_Bool类型的变量,该变量会被设置为1。

C99提供了stdbool.h头文件,让bool成为_Bool的别名。

6.3 for循环

for循环的初始化只会在for循环开始时执行1次。
第六章 C控制语句:循环

6.4 逗号运算符

逗号是一个序列点(逗号左侧项的所有副作用都在逗号右侧项之前完成)。

逗号表达式的值是右侧项的值。

6.5 如何选择循环:

入口条件循环(do-while):在执行循环前测试比较好、在许多应用中要求在一开始不满足测试条件时就直接跳过整个循环。

for循环:涉及初始化和更新变量、涉及索引计数的循环。

其他情况:while循环。

6.6 关键概念

函数原型是为了方便编译器查看程序中使用的函数是否正确。现代的编程习惯是把程序要素分为接口部分和实现部分,例如函数原型和函数定义。接口部分描述了如何使用一个特性,也就是函数原型所做的;实现部分描述了具体的行为,这是函数定义所做的。

上一篇:短视频系统源码——“潮流”标签之下蕴藏哪些实用功能


下一篇:小程序如何给经济复苏再添一把火?