@IT·程序猿

C while 循环

2016-06-15  本文已影响27人  2010jing

循环(Loop),在C语言中,是对相同的逻辑做重复的操作,也就是重复地执行相同的一段代码。
while循环
while循环的一般形式为:

  while(表达式){
        语句块
    }

其中表达式称为循环条件,语句块称为循环体。
解释:
首先计算表达式的值,如果为真(非 0),则执行循环体内的语句;执行完循环体内的语句后,再次计算表达式,如果为真(非 0),则执行循环体内的语句;
...
这个过程会一直重复,直到表达的值为假(即 0),就会跳出循环体,不再执行循环体内的语句,退出循环体

1.gif

我们来练习一下小学都做过的一道数学题:
求 1 + 2 + 3 +...+ 99 + 100 = ?

#include <stdio.h>
int main(){
    int i=1, sum=0;
    while(i<=100){
        sum+=i;
        i++;
    }
    printf("%d\n",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') n++;
    printf("Number of characters: %d\n", n);
    return 0;
}

运行结果:

Input a string:crabshell.sinaapp.com↙
Number of characters: 21

getchar() 之前篇幅有介绍过是用于输入一个字符, getchar() != "\n",表示只要键盘输入的不是回车就会继续执行循环。
do while循环
do-while循环的一般形式为:

do{
    语句块
}while(表达式);

do while循环 和 while循环 区别于:
它首先会执行循环体,然后再判断表达式是否为真;
如果为真,则继续循环;如果为假,则终止循环。
所以 do while循环 无论如何都会至少执行一次循环体。

2.gif

用do while 来重写 求 1 + 2 + 3 +...+ 99 + 100 = ?

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

运行结果:

5050

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

上一篇 下一篇

猜你喜欢

热点阅读