zoukankan      html  css  js  c++  java
  • 《C语言程序设计:现代方法(第2版)》第6章 循环

    第6章 循环

    没有循环和结构化变量的程序不值得编写。

    第5章介绍了C语言的选择语句:if语句和switch语句。本章将介绍C语言的重复语句,这种语句允许用户设置循环。

    循环(loop)是重复执行其他语句(循环体)的一种语句。在C语言中,每个循环都有一个控制表达式(controlling expression)。每次执行循环体(循环重复一次)时都要对控制表达式求值。如果表达式为真(即值不为零),那么继续执行循环。

    C语言提供了3种重复语句,即while语句、do语句和for语句,我们将在6.1节、6.2节和6.3节分别进行介绍。while循环在循环体执行之前测试控制表达式,do循环在循环体执行之后测试控制表达式,for语句则非常适合那些递增或递减计数变量的循环。6.3节还介绍了主要用于for语句的逗号运算符。

    本章最后两节致力于讨论与循环相关的C语言特性。6.4节描述了break语句、continue语句和goto语句。break语句用来跳出循环并把程序控制传递到循环后的下一条语句,continue语句用来跳过本次循环的剩余部分,而goto语句则可以调到函数内的任何语句上。6.5节介绍空语句,它可以用于构造循环体为空的循环。

    6.1 while 语句

    程序:显示平方表

    /**
     * Prints a table of squares using a while statement
     */
    #include <stdio.h>
    
    int main() {
        int i, n;
    
        printf("This program prints a table of squares.
    ");
        printf("Enter number of entries in table:");
        scanf("%d", &n);
    
        i = 1;
        while (i <= n) {
            printf("%10d%10d
    ", i, i * i);
            i++;
        }
    
        return 0;
    }
    

    程序:数列求和

    /**
     * Sums a series of numbers
     */
    #include <stdio.h>
    
    int main() {
        int n,sum=0;
    
        printf("This program sums a series of integers.
    ");
        printf("Enter integers (0 to terminate):");
    
        scanf("%d",&n);
        while (n!=0){
            sum+=n;
            scanf("%d",&n);
        }
        printf("The sum is: %d
    ",sum);
        
        return 0;
    }
    

    6.2 语句

    do语句和while语句关系紧密。事实上,do语句本质上就是while语句,只不过其控制表达式是在每次执行完循环体之后进行判定的。

    /**
     * Calculates the number of digits in an integer
     */
    #include <stdio.h>
    
    int main() {
        int digits = 0, n;
    
        printf("Enter a nonnegative integer:");
        scanf("%d", &n);
    
        do {
            n /= 10;
            digits++;
        } while (n > 0);
    
        printf("The number has %d digit(s).
    ", digits);
        
        return 0;
    }
    

    6.3 for语句

    现在开始介绍C语言循环中最后一种循环,也是功能最强大的一种循环:for语句。

    程序:显示平方表(改进版)

    /**
     * Prints a table of squares using a for statement
     */
    #include <stdio.h>
    
    int main() {
        int i, n;
    
        printf("This program prints a table of squares.
    ");
        printf("Enter number of entries in table:");
        scanf("%d", &n);
    
        for (i = 1; i <= n; i++) {
            printf("%10d%10d
    ", i, i * i);
        }
        
        return 0;
    }
    

    利用这个程序可以说明关于for语句的一个要点:C语言对控制循环行为的三个表达式没有加任何限制。虽然这些表达式通常对同一个变量进行初始化、判定和更新,但是没有要求它们之间以任何方式进行相互关联。看一下同一个程序的另一个版本。

    /**
     * Prints a table of squares using an odd method
     */
    #include <stdio.h>
    
    int main() {
        int i, n, odd, square;
    
        printf("This program prints a table of squares.
    ");
        printf("Enter number of entries in table:");
        scanf("%d", &n);
    
        i = 1;
        odd = 3;
        for (square = 1; i <= n; odd += 2) {
            printf("%10d%10d
    ", i, square);
            ++i;
            square += odd;
        }
    
        return 0;
    }
    
  • 相关阅读:
    C语言II—作业03
    C语言II博客作业01
    学期总结
    第一次作业!
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    第三次作业!
  • 原文地址:https://www.cnblogs.com/shenhuanjie/p/11492166.html
Copyright © 2011-2022 走看看