所谓循环就是重复执行同一段代码。
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;
}
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;
}

实例:
#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;
}
所谓死循环,就是循环条件永远成立,循环会一直进行下去,永不结束。死循环对程序的危害很大,一定要避免。出现死循环通常是因为不满足循环结束的条件,比如忘记更新循环变量的值。
例如:以下代码忘记更新循环变量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语言没有布尔类型,非零即为真,零为假。
猴子第一天摘下若干个桃子,当即吃了一半,还没有解馋,又多吃了一个 ,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半多一个。到第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;
}