循环结构
在生活中我们常常遇到需要重复处理的问题,我们在编程时解决需要重复处理的问题需要使用循环语句
循环语句主要有3种:while()循环;do-while()循环和for()循环
while()循环
用法:
while(循环条件)
{
循环体;
……
}
说明:
当程序遇到while()循环的时候,首先会判断while()的括号内的表达式,若为真(即满足循环条件)则执行循环,执行完循环体后再次返回到while();若为假则结束循环
示例:
输入10个学生的成绩,输出这10个学生的成绩总和以及平均分
int main()
{
int i = 1,count = 0,input = 0;//i用来控制循环次数,count用于总和,input用于每次输入
float avg = 0;//avg用于平均分
while(i<=10)//循环条件
{
printf("请输入第%d个学生的成绩:\n",i);
scanf("%d",&input);
count += input;
i++;//不要忘了让i++
}
avg = (float)count/10;
printf("总成绩是%d\n平均成绩是%f\n",count,avg);
return 0;
}
思考:若在循环体中没有i++这一句将会发生什么结果?
答案:i++这一句的作用是改变循环的状态。若没有i++这句,则i的值会永远是1,则循环永远都不会结束,即程序会进入死循环
初学者在使用循环时一定要注意不要陷入死循环。当你的程序使用了循环结构,在编译阶段无语法错误,在执行时发现程序会无限期进行下去,则很可能你的程序进入了死循环。此时要检查循环条件设置是否正确,以及检查是否设置了改变循环状态的量。
若发生了死循环,按ctrl+c(或ctrl+z)组合键可强制终止当前程序
练习:求1+2+3+……+100=?
答案:
int main()
{
int i=0,sum=0;
while(i<=100)
{
sum += i;
i++;
}
printf("和是%d\n",sum);
return 0;
}
若while()后没有{}限制,则循环只执行到while()后第一个分号处(即只执行一条语句),这点与if()-else相同
do-while()循环
用法:
do
{
循环体;
……
}while(循环条件);
说明:
当程序遇到do,会首先执行do下面的语句(即循环体),之后执行到while(),判断while()的括号内的表达式是真/假,若为真(即满足循环条件)则返回do语句处再次执行循环体;若为假则结束循环。
示例:将上文示例改写成do-while()循环
int main()
{
int i = 1,count = 0,input = 0;//i用来控制循环次数,count用于总和,input用于每次输入
float avg = 0;//avg用于平均分
do//循环开始
{
printf("请输入第%d个学生的成绩:\n",i);
scanf("%d",&input);
count += input;
i++;//不要忘了让i++
}while(i<=10);//循环条件
avg = (float)count/10;
printf("总成绩是%d\n平均成绩是%f\n",count,avg);
return 0;
}
练习:将上文练习“1+2+3+……+100=?”改写成do-while()循环
答案:
int main()
{
int i=0,sum=0;
do
{
sum += i;
i++;
}while(i<=100);
printf("和是%d\n",sum);
return 0;
}
while()与do-while()的区别:
while()循环是先判断循环条件,再进入循环体。而do-while()循环是先进入循环体,再判断循环条件。
while()循环有可能不执行循环体,而do-while()循环一定会执行一次循环体
for()循环
用法:
for(表达式1;表达式2;表达式3)
{
循环体;
……
}
注意:for()括号内的3个表达式的分隔符是分号;不是逗号,
说明:
表达式1:循环的初始条件,只执行一次。可以为0个、1个或多个变量设置初值
表达式2:判断循环结束的条件。在每次执行循环体前判断此表达式,若表达式为真则进入循环,否则不执行循环
表达式3:作为循环的调整(即改变循环状态),在执行完循环体之后执行
for(表达式1;表达式2;表达式3)
{
循环体;
}
等价于:
表达式1;
while(表达式2)
{
循环体;
表达式3;
}
表达式1可以省略。若如此做,相当于没有给for()循环设定起始初值。因此,若要循环正常进行,需要在for()之前设置好循环起始初值
表达式2可以省略。若如此做,相当于for()循环没有结束条件,即死循环。等价于:
while(1)
{
循环体;
表达式3;
}
表达式3可以省略。若如此做,需要在循环体内设置循环调整语句,否则循环无法正常执行。
若将3个表达式都省略(即for(;
标签:语句,循环体,语言,int,while,循环,表达式,结构 From: https://blog.csdn.net/qq_21106275/article/details/143864519