第六章循环控 6.1概述 例如:要输入全校学生成绩; 求若干个数之和; 迭代求根、阶乘等 ■循环结构是结构化程序三种基本结构之一, 它和顺序结构、选择结构共同作为各种复 杂程序的基本构造单元
第六章 循环控制 ◼ 6.1 概 述 ◼ 例如:要输入全校学生成绩; 求若干个数之和; 迭代求根、阶乘等。 ◼ 循环结构是结构化程序三种基本结构之一, 它和顺序结构、选择结构共同作为各种复 杂程序的基本构造单元
在c语言中可以用以下语句来实现循环: 1.用goto语句和if语句构成循环; 2.用 while语句; 3.用do- while语句; 4.用for语句;
在c语言中可以用以下语句来实现循环: 1.用goto语句和if语句构成循环; 2. 用while语句; 3. 用do一while语句; 4.用for语句;
6.280to语句以及用oto语句构成循环 goto语句为无条件转向语句,它的一般形式为 goto语句标号; 语句标号用标识符表示,它的定名规则与变量名相 同,即由字母、数字和下划线组成,其第一个字符必须为 字母或下划线。不能用整数来作标号。例如: goto labell 合法 goto 123; 不合法
6.2 goto语句以及用goto语句构成循环 goto语句为无条件转向语句,它的一般形式为: goto 语句标号; 语句标号用标识符表示,它的定名规则与变量名相 同,即由字母、数字和下划线组成,其第一个字符必须为 字母或下划线。不能用整数来作标号。例如: goto labeL1; ---合法 goto l23; --不合法
[例6.1]用IF和GOTO语句构成循环,求和(p106) maino fint i, sum=0 loop if (i<=100) {sum=sum十i; goto loop; j printf(”%d",sum);} 运行结果如下:5050 思考:关于GoTo语句的用法的优缺点
[例6.1] 用IF和GOTO语句构成循环,求和(p106) main() {int i,sum=0; i=1; 1oop:if(i<=100) {sum=sum十i; i++; goto loop;} printf(”%d”,sum);} 运行结果如下:5050 思考:关于GOTO语句的用法的优缺点
6.3 while语句 “当型”循环结构。 一般形式如下: while(表达式)语句; 表达式 当表达式为非0值时执行 while语句中 的内嵌语句。其流程图见图6·1。其特 E 点是先判断表达式,后行语句。 句 例6.2求1+2++100的和(p107)
图6。1 表达式 语句 0 非0 6.3 while语句 “当型”循环结构。 一般形式如下: whi1e (表达式)语句; 当表达式为非0值时执行while语句中 的内嵌语句。其流程图见图6·1。其特 点是先判断表达式,后行语句 。 例6.2 求1+2+…+100的和(p107)
的6 main lint i, sum=0; i=1 i<=100 [菲非0 while (i=100 Sum=sum+ [sum=sumti; i++: 1 F=i+1 printf(n%d", sum): K 关于循环体语句的思考 (1)哪些语句需要循环,即重复执行。 (2)在循环体中应有使循环趋向结束的语句
i=1 i<=100 Sum=sum+i i=i+1 0 非0 图6.2 main() {int i,sum=0;i=1; while (i<=100) {sum=sum+i;i++;} printf(“%d”,sum);} 关于循环体语句的思考: (1)哪些语句需要循环,即重复执行。 (2)在循环体中应有使循环趋向结束的语句
6.4do-mile语句 “直到型”循环结构。 屬6。3 般形式:do语句 循环体 语句 while(表达式); 其特点是:先执行语句,后判断表达式。 表达式 执行过程:先执行一次指定的内嵌的语句,然 后判别表达式,当表达式的值为非0(“真”) 时,返回重新执行该语句,如此反复,直到表 达式的值等0为止,此时循环结束。(见图 6.3)
表达式 语句 图6。3 非0 0 6. 4 do一while语句 “直到型”循环结构。 一般形式: do 语句 循环体 while (表达式); 其特点是:先执行语句,后判断表达式。 执行过程:先执行一次指定的内嵌的语句,然 后判别表达式,当表达式的值为非0(“真”) 时,返回重新执行该语句,如此反复,直到表 达式的值等0为止,此时循环结束。(见图 6.3)
例6.3用do- while语句 main dint i, sum=0; 1=1 F=1 O sumsum+ i sum=sum+i; i++ = l+l While(i=100) =100 Printf(m%d", sum) 对同一个问题可以用 while语句处理,也 可以用do- while语句处理。do- while结 构可以转换成whie结构
i<=100 i=1 sum=sum+I I=I+1 图6。4 例6.3 用do-while语句 main() {int i,sum=0;i=1; Do {sum=sum+i;i++;} While(i<=100); Printf(“%d”,sum);} 对同一个问题可以用while语句处理,也 可以用do一while语句处理。do一while结 构可以转换成while结构
比较以下程序的区别: 例6.4] while和do- while循环的比较(p109)。 (1)main ( (2) main O fint sum=0, i: fint sum=0, i scanf(”%d",&i); scanf(”%d",&i); while (i<=10) do sum=sum十i; sum=sum十I; i++; t while(i<=10) printf(w%d〃,sum);} printf(n%d", sum)
比较以下程序的区别: [例6.4] while和do一while循环的比较(p109)。 (1)main() (2) main() {int sum=0,i; {int sum=0,i; scanf(”%d” ,&i); scanf(”%d”,&i); while(i<=10) do {sum=sum十i; { sum=sum十I; i++; i++; } } while(i<=10); printf(“%d”,sum);} printf(“%d”,sum);}
6.5for语句 使用形式:for(表达式1;表达式2;表达式3)语句 for(I=1: I<=100; I++)sum=sum+i 执行过程: (1)先求解表达式1; (2)求解表达式2,若其值为真(非0),则执行 for语句中指定的内嵌语句,然后执行下面第(3)步, 若为假(0),则结束循环,转到第(5)步。 (3)若表达式为真,在执行指定的语句后,求 解表达式3。 (4)转回上面第(2)步骤继续执行。 (5)执行FOR语句下面的一个语句
6.5 for 语句 使用形式:for(表达式1;表达式2;表达式3) 语句 for (I=1;I<=100;I++) sum=sum+i 执行过程: (1)先求解表达式1; (2)求解表达式2,若其值为真(非0),则执行 for语句中指定的内嵌语句,然后执行下面第(3)步, 若为假(0),则结束循环,转到第(5)步。 (3)若表达式为真,在执行指定的语句后,求 解表达式3。 (4)转回上面第(2)步骤继续执行。 (5)执行FOR语句下面的一个语句