• C Primer Plus(6) 中文版 第6章 C控制语句:循环 6.1 再探while循环


    C语言写出强大而灵活的诀窍是控制程序流。对于计算机科学(是研究计算机,不是用计算机做研究)而言,一门语言应该提供以下
    3种形式的程序流:
    *执行语句序列;
    *如果满足条件就重复执行语句序列(循环)
    *通过测试选择执行哪一个语句序列(分支)
    C语言中的循环:while循环、for和do while。
    第3种形式用于在不同的执行方案之间进行选择,让程序更“智能”,且极大地提高了计算机的用途。
    6.1 再探while循环
    根据用户从键盘输入的整数进行求和。程序利用了scanf()的返回值之来结束循环。
    /* summing.c -- sums integers entered interactively */
    #include
    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;

    /* 输出:

    */ 

    0后面添加L后缀明确告诉编译器把0当做long类型对待。
    6.1.1 程序注释
    ==运算符是C的相等运算符(equality operator)。
    scanf()的两个不同特性来完成。首先,使用scanf()读取num的一个新值,然后,检查scanf()的返回值判断是否成功获取值。scanf()返回成功读取项的数量。如果读取不成功,scanf()则会把输入的字符放回输入队列中。
    如果scanf()在转换值之前出了问题(例如,检测到文件结尾或遇到硬件问题,会返回一个特殊值EOF(其值通常被定义为-1)。这个值也会引起循环终止。
    程序利用scanf()的双重特性避免了在循环中交互输入时的这个棘手的问题。
    程序的结构。总结如下:
    把sum初始化为0
    提示用户输入数据
    读取用户输入数据
    当输入的数据位整数时,
        输入添加给sum,
        提示用户进行输入,
        然后读取下一行输入
    输入完成后,打印sum的值
    顺带一提,这叫作伪代码(pseudocode),是一种简单的句子表示程序思路的方法,它与计算机语言的形式相对应。伪代码有助于设计程序的逻辑。确定程序的逻辑无误之后,再把伪代码翻译成实际的编程代码。使用伪代码的好处之一是,可以把注意力集中在程序的组织和逻辑上,不用在设计程序时还有分心如何用编程语言来表达自己的想法。
    while循环是入口条件循环。
    6.1.2 C风格读取循环
    可以用这些代码替换:
    while( scanf( "%ld", &num ) == 1 ){
        /*循环行为*/ 

    第2种形式同时使用scanf()的两种不同的特性。C的语法特性可以让你的程序更简洁。

  • 相关阅读:
    计算经纬度坐标之间的真实距离
    K8s ingress-nginx根据请求目录不同将请求转发到不同应用
    苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘
    祝各位程序员节日快乐
    istio系列:番外一 外网到内网访问配置实例
    【Vue】简单介绍Vue中的Vite
    MySQL 高级函数大全(更新完成)
    利用FPGA和CPLD数字逻辑实现模数转换器
    基于Dockerfile创建镜像
    Dockerfile文件详解
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126197115