第6章循环结构程序设计
循环语句概述
goto语句构成的循环
while语句构成的循环
do-while语句构成的循环
for语句构成的循环
break语句与continue语句
应用举例
循环语句概述
例如:求1~100的累计和。
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。 根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),C语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。
在C语言中,可用以下语句实现循环:
(1)用goto语句
(2)用while语句。
(3)用do-while语句。
(4)用for语句。
goto功能为:使系统转向标号所在的语句行执行。
goto语句的一般格式: goto 语句标号;
【】用goto语句求1~100的累计和。
main()
{ int i=1, sum=0;
loop: if (i<=100)
{
sum =sum+ i; i++;
goto loop;
}
printf(“sum=%d\n”, sum);
}
(1)标号的命名必须遵循标示符命名规则。
(2)必须结构化程序设计方法,主张限制使用goto语句。
goto语句构成的循环
while语句----实现“当型”循环结构
(1)一般格式 while(表达式) {
循环体语句组;
}
(2)执行过程如图右图所示。
(3)特点:先判断继续循
环的条件,后执行循环体。
while语句构成的循环
循环体语句
表达式
0
非0
[] 用while语句求1~100的累计和。 main() {
int i=1,sum=0; //初始化循环控制变量i和累计器sum
while( i<=100 ) {
sum = sum+i; /*实现累加*/ i++; /*循环控制变量i增1*/ } printf(“sum=%d\n”,sum); }
程序运行情况如下:sum=5050
注意
(1)循环体包括多个语句时,应该用花括弧括起来。
(2)在循环体中应用使循环趋于结束的语句。
do-while语句构成的循环
while语句----实现“直到型”循环结构
(1)一般格式
do
{
循环体语句组;
}while(循环继续条件); /*本行的分号不能缺省*/
(2)执行过程如图右所示。
(3)特点:先执行循环体,
再判断循环条件。
循环体语句
表达式
0
非0
[] 用do-while语句求解1~100的累计和。 main() { int i=1, sum=0; //初始化循环控制变量i和累计器
do { sum = sum+i; /*累加*/ i++; }while(i<=100); /*循环继续条件:i<=100*/ printf(“sum=%d\n”,sum); }
(1)do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况(注意与while语句的细微区别)。
譬如:,运行结果有何区别?
(2) 在循环体中应用使循环趋于结束的语句。
for语句构成的循环
C语言中 for语句使用最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定但给出了循环结束条件的情况。
(1)一般格式 for(循环变量赋初值;循环条件;循环变量增值) {
循环体语句组;
}
(2)执行过程如右图所示。
循环体语句
循环条件
0
非0
循环变量增值
循环变量赋初值
[] 用for语句实现1~100的累加和。 main()
{
int i, sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++)
{
sum=sum+ i; /*实现累加*/
}
printf("sum=%d\n",sum); }
程序运行情况如下:
sum=5050
阐述如何把for循环转化为while循环
(3)说明
1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。阐述三种缺省情况。
2)“循环变量赋初值”表达式,既可以是给循环变量赋
第06章 循环结构程序设计 来自淘豆网www.taodocs.com转载请标明出处.