文档介绍:高级程序设计语言
吴 凡
TEL: 83202682
E-mail: cdwf@
第六章循环控制
电子科技大学通信与信息工程学院
概述
循环结构:在给定条件成立时,反复执行某程序段,直到条件不成立为止。
给定的条件称为循环条件,反复执行的程序段称为循环体。
实现循环的四种语句
用goto语句和if语句构成循环;(不提倡)
用while语句;(while型循环,先判断,再执行)
用do-while语句;(先执行,再判断)
用for语句;(多功能)
电子科技大学通信与信息工程学院
goto语句以及用goto语句构成循环
goto语句功能:无条件地转向语句标号所在的语句行出开始执行
格式为: goto 语句标号;
语句标号:属于标识符,命名规则与变量相同
不提倡使用,会破坏结构化,
例: 例:求1+2+3…+100的和
for ( ... )
for ( ... ) {
...
if (disaster)
goto error;
}
...
error: printf(“ERROR\n”);
#include ""
main()
{
int sum = 0, i = 1;
loop: if (i<=100){
sum = sum + i;
i++;
goto loop;
}
printf("sum = %d\n",sum);
}
电子科技大学通信与信息工程学院
while 语句
格式:while (表达式) 语句;
例:求1+2+3…+100的和
语句
当(表达式)为真
语句
表达式
0(假)
非0(真)
#include ""
main()
{
int sum = 0, i = 1;
while (i <= 100){
sum = sum + i;
i++;
}
printf("sum = %d\n",sum);
}
循环体
循环变量
电子科技大学通信与信息工程学院
while 语句
例:∑n 例:n!
#include ""
main()
{
int sum, i;
int n;
printf("Input n:\t");
scanf("%d", &n);
sum = 0;
i = 1;
while (i <= n){
sum += i;
i++;
}
printf("sum = %d\n",sum);
}
#include ""
main()
{
int fac, i;
int n;
printf("Input n:\t");
scanf("%d", &n);
fac = 1;
i = 1;
while (i <= n){
sum *= i;
i++;
}
printf("factorial=%d\n",fac);
}
电子科技大学通信与信息工程学院
while语句
例:统计从键盘输入一行字符的个数
#include ""
main()
{
int num = 0; printf("input a string:\t"); while (getchar()!=‘\n’)
num++; printf("character number = %d\n", num);}
电子科技大学通信与信息工程学院
while语句注意事项
循环前,应先给循环变量赋初值
循环体中,一般应该有修改循环变量值的语句,使循环趋向结束(即使表达式的值变为假)
循环体如包括有一个以上的语句,则必须用复合语句(即用{ }括起来)
循环体可以为空
例:while ((c = getchar( )) != 'Q' );等价:c = getchar( ); while (c != 'Q') c = getchar();
电子科技大学通信与信息工程学院
do-while语句
格式:do 语句; while (表达式);
特点:先执行,再判断
区别:while语句:先判断,再执行
语句
直到(表达式)为假
表达式
非0(真)
0(假)
语句
电子科技大学通信与信息工程学院
区别:do while & while
while do while
#include ""
main()
{
int sum=0, n;
scanf("%d",&n);
while(n <= 10){
sum += n;
n++;
} printf("sum=%d\n",sum);}
#include ""
main()
{
int sum=0, n;
scanf("%d",