• 1203.3——循环语句 之 while


    while循环

    while循环的一般形式为:
        while(表达式){
            语句块
        }
    其中表达式称为循环条件,语句块称为循环体。

    while语句的意思是:先计算表达式的值,当值为真(非0)时, 执行循环体语句;执行完循环体语句,再次计算表达式的值,如果为真,继续执行循环体……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行后面的语句。其执行过程如下图所示:


    用while语句计算1加到100的值:

    #include <stdio.h>
    int main(void){
        int i=1, sum=0;
        while(i<=100){
            sum+=i;
            i++;
        }
        printf("%d
    ",sum);
        return 0;
    }

    运行结果:
    5050

    代码分析:
    1) 程序运行到while语句时,因为 i=1,i<=100 的值为真,所以执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。

    2) 接下来会继续判断 i<=100是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为3。

    3) 重复执行步骤 2)。

    4) 当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。

    再看一个例子,统计从键盘输入的一行字符的个数:

    #include <stdio.h>
    int main(){
        int n=0;
        printf("Input a string:");
        while(getchar()!='
    ') n++;
        printf("Number of characters: %d
    ", n);
        return 0;
    }

    运行结果:
    Input a string:cnblogs
    Number of characters: 7

    本例程序中的循环条件为getchar()!=' ',其意义是,只要从键盘输入的字符不是回车就继续循环。循环体n++;完成对输入字符个数计数。

    do-while循环

    除了while循环,在C语言中还有一种 do-while 循环。

    do-while循环的一般形式为:
    do{
        语句块
    }while(表达式);

    do-while循环与while循环的不同在于:它会先执行循环体,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环体。其执行过程可用下图表示:


    用do-while计算1加到100的值:

     
    #include <stdio.h>
    int main(){
        int i=1, sum=0;
        do{
            sum+=i;
            i++;
        }while(i<=100);
        printf("%d
    ", sum);
        return 0;
    }

    运行结果:
    5050

    注意while(i<=100);最后的分号;,这个必须要有。

    while循环和do-while各有特点,大家可以适当选择,实际编程中使用while循环较多。

  • 相关阅读:
    CDZSC_2015寒假新人(1)——基础 D
    CDZSC_2015寒假新人(1)——基础 C
    CDZSC_2015寒假新人(1)——基础 B
    CDZSC_2015寒假新人(1)——基础 A
    Fluent Python: Classmethod vs Staticmethod
    Fluent Python: @property
    Fluent Python: Mutable Types as Parameter Defaults: Bad Idea
    RedHat/CentOS利用iso镜像做本地yum源
    CentOS6 安装VNCserver
    Centos6设置DNS
  • 原文地址:https://www.cnblogs.com/damonWq/p/5017267.html
Copyright © 2020-2023  润新知