1 概述
循环结构是程序中一种很重要的结构.其结构的特点是,再给定条件成立时,反复执行某程序,知道条件不成立为止.C语言中的循环结构有多种类型,如下:
- 用while语句;
- 用do-while语句;
- 用for语句.
2 while语句
while语句的一般形式:
while(表达式)
{
语句;
}
表达式为while的循环条件,语句为循环体.也就是说,当满足表达式的时候,进入循环体执行语句.
练习1:用while语句求1~100所有整数之和;
#include<stdio.h>
int main (int argc, char *argv)
{
int sum=0;
int i=1;
while (i<=100)
{
sum=sum+1;
i=i+1;
}
printf("sum=%d\n",sum);
return 0;
}
练习2:用while循环语句求[m,n]之间所有整数之和;
#include <stdio.h>
int main(int argc,char *argv)
{
int m,n,i,sum=0; //变量定义
printf("请输入两个整数m和n: \n"); //键盘输入变量值
scanf ("%d%d",&m,&n);
if (m<n) // 计算公式部分: 1.判断m是否小于n;
{ // 2. 进行循环计算;
while(i<=n)
{
sum=sum+i;
i=i+1;
}
}
else
printf ("error\n");
printf ("[%d,%d]之间的整数和为: \n",m,n,sum);
return 0;
}
3 do...while循环语句
do...while循环语句的一般形式如下:
do
{
循环语句;
}
while(表达式);
do...while循环语句和while循环语句有一定的区别:do...while语句实现执行循环语句,然后再判断表达式是否为真,若为真则继续循环,否则跳出循环.因此,do...while循环语句至少要执行一次循环语句.
练习1:用do...while循环语句,求1~100之间所有整数之和.
#include<stdio.h>
int main()
{
int i=0,sum=0;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf ("1~100之间所有整数之和为: \n",sum);
return 0;
}
4 for循环语句
f在C语言中,for循环语句的使用是最灵活的,它是完全可以取代while和do...while循环语句的.for循环语句的一般形式为:
for(表达式1;表达式2;表达式3)
{
循环语句;
}
其中,表达式1表示循环变量赋初始值;表达式2表示循环条件;表达式3表示循环变量的增量).
for循环语句的执行过程:
- 先求解表达式1;
- 求解表达式2,若条件为真(非0)时,则执行指定的循环语句,反之则跳出循环,执行循环后的语句;
- 求解表达式3;
- 转到第二步继续执行;
- 循环结束,执行for循环语句后面的语句.
练习1:用for循环语句,求1~100之间所有整数之和;
#include<stdio.h>
int main()
{
int i,main=0;
for (i=1;i<=100;i++)
{
sum=sum+i;
}
printf ("1~100之间所有整数之和为:%d\n",sum);
return 0;
}
注意:
- for 循环中的"表达式1","表达式2","表达式3"都是可以选择的,但是它们中间的";"使不能缺少的;
- 表达式1可以设置循环变量的初值的赋值表达式,也可以是其他表达式;
- 表达式1和表达式3可以是一个简单的表达式也可以是用逗号表达式.如:
for (i=0,j=100;i<=100;i++,j--)
{
k=i+j;
}- 表达式2一般是关系表达式或者逻辑表达式,但也可是数值表达式或者字符表达式,只要其值为非零,就能执行循环体.如:
- for(i=0;(c=getchar()) != '\n';i += c)
- for(;(c=getchar()) !='\n';)
printf ("%c",c);
5 课外补充
break和continue的区别
break:在循环中遇见break,则直跳出循环;
continue:在循环中遇见continue时,跳出这一次循环,进入下一次循环.
break和continue的执行形式如下:
while(表达式1)
{
if (表达式2)
break; //跳出循环,执行循环后的语句;
....
}
while(表达式1)
{
if (表达式2)
continue; //跳出这一次循环,执行下一次循环)
...
}