文档介绍:第5章循环结构程序设计
当型循环:
直到型循环:
假
真
P
A
假
真
P
A
两个要素:
(1)决定是否执行语句组的条件称为“循环控制条件”。
(2)重复执行的语句组称为“循环体”。
第5章循环结构程序设计
循环语句
用if…goto语句实现循环
goto语句为无条件转向语句。其一般形式为:
goto 语句标号;
功能:在程序执行过程中,如果遇到goto语句,则程序流程无条件地转向语句标号后的语句继续执行。
例: …
goto label;
…
label: x=a+b;
…
第5章循环结构程序设计
循环语句
用if…goto语句实现循环
说明:
(1)语句标号是一个用户标识符,在程序中一个语句的前面,表示转向的地址。
(2)语句标号仅仅对goto 语句有效,对其他语句不影响。同一个程序中,不允许有同名的语句标号。
(3)由于滥用goto语句将导致程序流程无规律、可读性差,不符合结构化程序设计原则,因此结构化程序设计方法限制使用goto语句。
(4)goto语句的主要作用是:与条件语句if配合使用,用来实现条件转移、构成循环、跳出循环体等功能。
第5章循环结构程序设计
循环语句
用if…goto语句实现循环
…goto语句构成循环
#include<>
main()
{
char c;
loop: c=getchar();
if(c=='\n') goto end;
putchar(c);
goto loop;
end: printf("The end\n");
}
例:
求s=1+2+3+…+100的值。
流程图:
s=0 i=1
s=s+i
i=i+1
i≤100
真
假
程序:
#include<>
main()
{
int i,s;
s=0;
i=1;
loop: if(i<=100)
{ s=s+i;
i=i+1;
goto loop;
}
printf("s=%d",s);
}
第5章循环结构程序设计
循环语句
while语句
while语句用来实现“当型”循环结构。
while语句的一般形式如下:
while(表达式)
语句/*循环体*/
功能:当表达式的值为真时,执行while语句中的循环体。
假
真
表达式
语句
求s=1+2+3+…+100的值。
流程图:
s=0 i=1
s=s+i
i=i+1
i≤100
真
假
程序:
#include<>
main()
{
int i,s;
s=0;
i=1;
loop: if(i<=100)
{ s=s+i;
i=i+1;
goto loop;
}
printf("s=%d",s);
}
#include<>
main()
{
int i,s;
s=0;
i=1;
while (i<=100)
{
s=s+i;
i= i +1;
}
printf("s=%d",s);
}
第5章循环结构程序设计
循环语句
while语句
说明:
(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句的形式出现,否则while语句的范围只到while后面第一个分号处,即循环体是一个语句。
(2)在循环体中应有使循环趋向于结束的语句,即设置修改循环条件的语句,否则,循环体要么一次也不执行,要么是死循环。
(3)while语句的特点是先判断表达式的值,然后执行循环体中的语句,如果表达式的值一开始为假(值为0),则循环体一次也不执行,转入while语句的下一语句去执行。
第5章循环结构程序设计
循环语句
do…while语句
do…while语句用来实现“直到型”循环结构。
do…while语句的一般形式如下:
do
语句/*循环体*/
while(表达式);
功能:先执行一次循环体,然后判断表达式的值,当表达式的值为真时,返回重新执行循环体,如此反复,直到表达式的值等于假为止,此时循环结束。
假
真
语句
表达式