C语言程序设计
主讲:物理与电子信息工程系
第6章循环控制
概述
循环:同一程序段重复执行若干次
实现循环的语句:
goto if
while do~while( ) for
goto语句及其构成的循环
一般形式:goto 语句标号
说明:
(1)goto语句使控制无条件转到标号所指定的语句处开始往下执行;
(2)语句标号必须是标识符而不是常量。
如:goto abc 合法, 而goto 35 则非法;
(3)与循环语句配合使用时,可从循环体内跳到循环体外,而不能从循环体外跳到循环体内;
(4)goto语句转移的方向可前可后;
(5)与if语句配合使用时可构成循环
main( )
{int i=1, sum=0;
loop: if(i<=100)
{sum=sum+i;
i++;
goto loop; }
printf (“sum=%d \n”,sum);
}
sum=0
i=1
sum=sum+i
i=i+1
sum=sum+i
i=i+1
┋
sum=sum+i
i=i+1
初始准备
重复操作100次
运行结果:
sum=5050
例T6- 求
while 语句
形式:while(表达式)语句
例:求传统流程图和N-S结构流程图如下:
真:执行语句(由一到多句组成,多句时用复合语句)
计算表达式
假:退出循环
sum=sum+i
i=i+1
i=1;sum=0
i≤100
假
真
i=1;sum=0
当i≤100
sum=sum+i
i=i+1
例T6- 求程序如下:
main( )
{int i=1,sum=0;
while(i<=100)
{sum=sum+i; i++;}
printf (“sum=%d\n”,sum);
}
运行结果:
sum=5050
问题的提出:
(1)什么情况下循环体一句也不执行?
(2)什么情况下出现死循环
(3)哪一句使循环趋于结束
do~while语句
形式:do 语句
while(表达式);
操作:先执行语句,再计算表达式,为真时,继续执行语句,为假时,退出循环。
例:求传统流程图和N-S结构流程图如下:
i=1,sum=0
sum=sum+i
i=i+1
i≤100
真
假
i=1,sum=0
sum=sum+i
i=i+1
直到i>100
例T6- 求
main( )
{int i=1;sum=0;
do
{sum=sum+i; i++;}
while(i<=100);
printf (“sum=%d \n”,sum);
}
运行结果:
sum=5050
以下是while和do~while两种循环的比较
T6-
main( )
{int sum=0, i; scanf(“%d”, &i);
while(i<=10)
{sum=sum+i; i++; }
printf (“sum=%d \ n”, sum);
}
结论:
(1)当条件表达式第一次为真时,两种循环得到的结果相同.
(2)当条件表达式一开始为假时,两种循环结果是不同的.
输入:1 10 11
输出:sum=55 sum=10 sum=0
T6-4-
main( )
{ int sum=0, i;
scanf (“%d”, &i);
do
{sum=sum+i; i++;}
while (i<= 10);
printf( “sum=%d \n”, sum);
}
输入:1 10 11
输出:sum=55 sum=10 sum=11
第六章-循环结构程序设计 来自淘豆网www.taodocs.com转载请标明出处.