← 返回首页
C语言系列教程(十三)
发表时间:2021-03-24 18:25:33
循环结构

所谓循环就是重复执行同一段代码。

1.while循环

while循环的特点:先判断再循环,有可能一次也不循环。

实例:

#include <stdio.h>
#include <string.h>

int main(){

    int n=1;
    int sum=0;
    while(n<=100){
        sum+=n;
        n++;
    }
    printf("sum=%d\n",sum);
    return 0;
}

2.do-while循环

do-while循环的特点:先循环再判断,至少循环一次。

实例:

#include <stdio.h>
#include <string.h>

int main(){

    int n=1;
    int sum=0;
    do{
        sum+=n;
        n++;
    }while(n<=100);
    printf("sum=%d\n",sum);
    return 0;
}

3.for循环

实例:

#include <stdio.h>
#include <string.h>

int main(){

    int sum=0;
    for(int n=1;n<=100;n++){
       sum+=n;
    }
    printf("sum=%d\n",sum);
    return 0;
}

4.三种死循环写法

所谓死循环,就是循环条件永远成立,循环会一直进行下去,永不结束。死循环对程序的危害很大,一定要避免。出现死循环通常是因为不满足循环结束的条件,比如忘记更新循环变量的值。

例如:以下代码忘记更新循环变量n的值,造成n<=100条件永远为真,则出现死循环。

#include <stdio.h>
#include <string.h>

int main(){

    int n=1;
    int sum=0;
    while(n<=100){
        sum+=n;
    }
    printf("sum=%d\n",sum);
    return 0;
}

常见的死循环结构有以下三种:

while(1){
   //循环体
}

do{
   //循环体
}while(1);

for(int i=0;;i++){
   //循环体
}

注意:C语言没有布尔类型,非零即为真,零为假。

5.循环练习题

5.1猴子摘桃子问题

猴子第一天摘下若干个桃子,当即吃了一半,还没有解馋,又多吃了一个
,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半多一个。到第10天早上想再吃时,只剩下一个桃子了。求第一天共摘了多少?

程序分析(逆向思维): 猴子从第一天摘下桃子后,第一天到第九天都是吃了原有桃子的一半然后又吃一个,然后第十天剩余一个桃子,那样第九天剩的桃子就等于低十天剩余的桃子加一后乘以二,然后循环九次便得到第一天摘得桃子。

代码实现:

#include <stdio.h>
int main()
{
    int i=9,sum=1;//i表示天数,sum表示桃子数,第十天桃子剩余一个
    for(i=9;i>0;i--)
    {
        sum=(sum+1)*2;
     } 
     printf("猴子一共采摘了%d个桃子",sum);
    return 0;
}