C语言循环结构详解
一.while 语句
1.语句结构
while循环语句是指当判定条件成立时,执行指定语句。
while循环语句的语法如下:
while(判定条件)
{
循环体;
}
其中,判定条件可以是关系表达式(隐式关系表达式)或逻辑表达式,用于控制循环的次数,循环体可以为语句或语句块,为循环语句执行的具体内容。
判断条件不可以被省略
2.循环方式
while循环语句在每次循环时都要做一次条件判断,如果判断结果为真则进入循环,若为假,跳出循环
3.代码示例
代码示例(1)
#include <stdio.h>
#include <math.h>
int main()
//一共有100个馍,大僧一个人分三个,小僧三个人分一个,求大僧和小僧各有多少人?
{
int i,sum;
i=1; //存储大僧的数量,穷举法
while(i<=33)
{
if(i*3+(100-i)/3==100)
printf("大:%d 小:%d",i,100-i);
i++;
}
return 0;
}
代码示例(2)
计算累加1-100的和
倒序计算
#include <stdio.h>
#include <math.h>
int main()
{
//倒序计算(计算100-1的倒序和)
int i,sum;
i=100;
sum=0;
while(i>=1)
{
sum=sum+i;
i--;
}
printf("%d\n",sum);
return 0;
}
顺序计算
#include <stdio.h>
#include <math.h>
int main()
{
//顺序计算(1-100的顺序和)
int i,sum;
i=1;
sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}
二.for 语句
1.语句结构
由初始条件,判断条件,迭代条件及循环体四个部分组成
for(初始条件;判断条件;迭代条件)
{
循环体;
}
1)初始条件可以初始化环境,用于确定具体的起始循环环境。
(2)判断条件用于判断是否满足条件,如果满足,执行循环体,如果不满足,跳出循环。
(3)迭代条件用于改变参与判断条件的值,只有判断条件的值不断改变,才能推动循环语句的进行,避免陷入死循环。
(4)循环体就是指循环执行的具体内容。
2.流程
for循环语句在每次循环时都要做一次条件判断,如果判断结果为假,则跳出循环,如果为真继续循环
首先从初始条件进入循环语句。然后进行判断条件,进行判断如果为真则进入循环,循环结束则进行迭代条件,之后再次进入判断条件判断是否真假,依此类推,直至判断条件为假跳出循环
3.简化形式
for循环语句的简化形式是指将小括号中的初始条件与迭代条件省略,只保留判断条件 (但是分号不可略)
for(;判断条件;)
{
循环体;
}
4.示例代码
示例代码(1)
#include <stdio.h>
#include <math.h>
int main()
{
//输入一个整数,求各位数的位数之和,例如:输入123,则输出6
int n,m,s;
scanf("%d",&n);
for(s=0;n>0;)
{
m=n%10;
s+=m;
n=n/10;
}
printf("%d\n",s);
return 0;
}
示例代码(2)
计算1-100的累加和
#include <stdio.h>
#include <math.h>
int main()
{
int i,s=0;
for(i=1;i<=100;)
{
s+=i;
i++;
}
printf("%d",s);
return 0;
}
三.do…while 语句
直到型循环是常用的循环结构形式。它是先运行循环体,在进行条件判断。这种形式中,如果满足条件,则再次运行循环体;如果不满足,则跳出循环体。简而言之,直到型循环就是先执行后判断。
1.语句结构
do-while循环语句是先执行循环体,直到判断条件不满足时结束循环。
do
{
循环体
}while(判断条件);
其中循环体可以是单条语句也可以是语句块,会被直接执行;判断条件可以是关系表达式(隐式关系表达式)或逻辑表达式,且不可以被省略;判断条件后的分号代表do-while循环语句的结束,不可省略
do-while循环语句会先执行循环体,然后对判断条件进行判断。根据判定结果选择是否再次执行循环体。
do-while循环语句中的循环体至少会被执行一次
2.代码示例
代码示例(1)
求1–100的和
#include <stdio.h>
#include <math.h>
int main()
{
//求1-100的和
int s,i;
i=1;
s=0;
do{
s+=i;
i++;
}
while(i<=100);
printf("%d\n",s);
return 0;
}
代码示例(2)
从键盘上输入一行字符,以回车结束,统计并输出其中包含的数字字符个数。
分析:
1.定义字符型变量ch,用于保存输入的字符。
2.定义整型变量count,用于保存数字字符的个数,并赋初值0.
3.输入一个字符,保存到变量ch中。
4.判断ch中的字符是否是数字字符,如果是数字字符,则count加1.
5.判断ch中的字符是否是换行符,如果不是换行符,则重复执行步骤3和步骤4.
6.输出变量count中保存的数字字符个数。
#include <stdio.h>
#include <math.h>
int main()
{
char ch;
int count=0;
do{
ch=getchar();
if(ch>='0' && ch<='9')
count++;
}
while(ch!='\n');
printf("数字字符个数为:%d\n",count);
return 0;
}