C语言教程:循环结构 学习目的:循环控制结构程序设 计是三大程序结构中最重要的 部分。通过讲解,使学生熟悉 循环控制结构程序设计的編写 快速的编程
C语言教程:循环结构 学习目的:循环控制结构程序设 计是三大程序结构中最重要的 部分。通过讲解,使学生熟悉 循环控制结构程序设计的编写 方式、运行方法,能够正确、 快速的编程
循环结构内容介绍 4.1循环结构 42循环结构 4.5其它控制语句 46程序举例
循环结构内容介绍 4.1 循环结构 4.2 循环结构 4.5 其它控制语句 4.6 程序举例
循环结构概述 C语言提供了多种循环语句,可以组成各 种不同形式的循环结构 1)用goto语句和i语句构成循环; 2)用whl语句或用do-whle语句; 3)用fori语句;
循环结构概述 C语言提供了多种循环语句,可以组成各 种不同形式的循环结构。 1) 用goto语句和if语句构成循环; 2) 用while语句或用do-while语句; 3) 用for语句;
goto语句以及用goto语句构成循环 goto语句的使用格式为: 峰goto语句标号;--1----+--+--+---→ 特别说明:goto语句通常不用,主要因为它将使程序层次不清, 【例】用goto语句和语句构成循环, main( i int i, sum=0 i=1; loop: if(K<=100) sum=sum+i 1++: goto loop; i printf("%odn", sum)
goto语句以及用goto语句构成循环 goto 语句的使用格式为: goto 语句标号; 特别说明:goto语句通常不用,主要因为它将使程序层次不清,且不易读。 【例】用goto语句和if语句构成循环,。 main() { int i,sum=0; i=1; loop: if(i<=100) {sum=sum+i; i++; goto loop;} printf("%d\n",sum); }
while语句的一般形式为: while(表达式)语句 其中表达式是循环条件,可以是一个任意类 型的表达式,但通常都是关系或逻辑型的; 语句为循环体。【例】用 while语句求。用 传统流程图和N-S结构流程图表示算法,见 图 main() 1 i int i=l, sum=0 1≤100 while(<=100) 当≤100 (sum=sum+i sumsum+ i sum=sum+ 1+1 printf("%/od n", sum)
while语句的一般形式为: while(表达式)语句 其中表达式是循环条件,可以是一个任意类 型的表达式,但通常都是关系或逻辑型的; 语句为循环体。【例】用while语句求。用 传统流程图和N-S结构流程图表示算法,见 图: main( ) { int i=1,sum=0; while(i<=100) {sum=sum+i; i++; } printf("%d\n",sum); }
使用whle语句应注意以下几点: wle句中的表达式般是关系表送或逻辑表 达式,只要表达式的值为真(非0)即可继续循环。分 析如下程序: main( f int a=0,n printf("n input n scanf("%d", &n) while(n- printf( ood 2 2a++*2),} 本例程序将执行n次循环,每执行一次,n值减1。 循环体输出表达式a++*2的值。该表达式等效于(a*2; a++)。 2)循环体如包括有一个以上的语句,则必须用{} 括起来,组成复合语句
使用while语句应注意以下几点: 1) while语句中的表达式一般是关系表达或逻辑表 达式,只要表达式的值为真(非0)即可继续循环。分 析如下程序: main( ){ int a=0,n; printf("\n input n: "); scanf("%d",&n); while (n--) printf(“%d ”,a++*2); } 本例程序将执行n次循环,每执行一次,n值减1。 循环体输出表达式a++*2的值。该表达式等效于(a*2; a++)。 2) 循环体如包括有一个以上的语句,则必须用{} 括起来,组成复合语句
do-while语句的一般形式为 dof语句 sum=sum+ 1 1+1 }whil(表达式) 真<1100 这个循环与whil循环的不同 假 在于它先执行循环中的语句 然后再判断表达式是否为真, mair n() 如果为真则继续循环;如果 Int lsum 为假,则终止循环。因此,do while循环至少要执行一次循 环语句。【例】用do- while dof sum=sum+i 语句求。用传统流程图和N 1+十 S结构流程图表示算法,见 B while(i<=100) 图: printf("%d\n", Sum); 3
do-while语句的一般形式为: do{ 语句 }while(表达式); 这个循环与while循环的不同 在于:它先执行循环中的语句, 然后再判断表达式是否为真, 如果为真则继续循环;如果 为假, 则终止循环。因此, dowhile循环至少要执行一次循 环语句。【例】用do-while 语句求。用传统流程图和NS结构流程图表示算法,见 图: main( ) { int i,sum=0; i=1; do{ sum=sum+i; i++; }while(i<=100) printf("%d\n",sum); }
【分析】 while和do- while循环比较,分析分别输入1 和1时两个程序执行的结果的异同。 (1) maino (2) maino fint sum=0, fint sum=0, scanf( %d, &i) scanf("%d, &i) while(<=10) do (sum=sum+i isum=sum+ 1++ 1++ printf(sum=%od,, sum); while(K<=10) printf( sum=%od,, sum)
【分析】while和do-while循环比较,分析分别输入1 和11时两个程序执行的结果的异同。 (1)main() {int sum=0,i; scanf(“%d”,&i); while(i<=10) {sum=sum+i; i++; } printf(“sum=%d”,sum); } (2)main() {int sum=0,i; scanf(“%d”,&i); do {sum=sum+i; i++; } while(i<=10); printf(“sum=%d”,sum); }
for语句使用最为灵活。它的一般形式为 for(表达式1;表达式2:表达式3)语句 其执行过程可用下图表示 它的执行过程如下 1)先求解表达式1 求解表达式1 2)求解表达式2,若其值为真 (非0),则执行for语句中指 表达式2 假 定的内嵌语句,然后执行下面 真 第3)步;若其值为假(0), 语句 则结東循环,转到第5)步。 3)求解表达式3 求解表达式3 4)转回上面第2)步继续执行。 5)循环结束,执行fo语句下面 的一个语句 f语句的 下一语句
for语句使用最为灵活。它的一般形式为: for(表达式1;表达式2;表达式3) 语句 它的执行过程如下: 1)先求解表达式1。 2)求解表达式2,若其值为真 (非0),则执行for语句中指 定的内嵌语句,然后执行下面 第3)步;若其值为假(0), 则结束循环,转到第5)步。 3)求解表达式3。 4) 转回上面第2)步继续执行。 5)循环结束,执行for语句下面 的一个语句。 其执行过程可用下图表示
for语句最简单的应用形式也是最容易理解的形式 如下: for(循环变量赋初值:循环条件;循环变量增 量)语句 循环变量赋初值总是一个赋值语句;循环条件 是一个关系表达式它决定什么时候退出循环; 循环变量增量,定义循环控制变量每循环一次 后按什么方式变化。这三个部分之间用“;” 分开。特别注意:三个表达式可以没有但是 “;”却万万不能没有
for语句最简单的应用形式也是最容易理解的形式 如下: for(循环变量赋初值;循环条件;循环变量增 量) 语句 循环变量赋初值总是一个赋值语句; 循环条件 是一个关系表达式,它决定什么时候退出循环; 循环变量增量,定义循环控制变量每循环一次 后按什么方式变化。这三个部分之间用“;” 分开。特别注意:三个表达式可以没有但是 “;”却万万不能没有