
第4章循环语句和转移语句 主讲教师:陈勇 联系电话:13891934678 E-Mail:cy@nwsuaf.edu.cn 计算机应用教研室
计算机应用教研室 第4章 循环语句和转移语句 主讲教师:陈 勇 联系电话:13891934678 E-Mail:cy@nwsuaf.edu.cn

第 4.0引例 章 求s=1+2+3+...+100之和。 main() 语句 int s=0,i=1; start:s=s+i; 转移 i=i+1; if(i<=100)goto start; 句 printf("s=%d",s); getch();
第 4 章 循 环 语 句 和 转 移 语 句 4.0 引例 求s=1+2+3+……+100之和。 main() { int s=0,i=1; start:s=s+i; i=i+1; if(i<=100)goto start; printf("s=%d",s); getch(); }

第 4.1基本概念 章 1.循环体:被重复执行的程序段,可以是一个语句 也可以是由多个语句组成的复合语句; 语 2.循环变量:用于控制循环次数的变量,常用,j,k等; 3.嵌 套:一个控制结构中还包含另一个控制结构, 和 如选择中包含选择,循环套循环,选择套 转移语 循环,循环中套选择等; 4.死循环:循环无法中止的情况被称为死循环,如果遇 到死循环,可以用CtrI+Break键中断跳出; 5.步 长:指循环变量每次变化的幅度。如经常可以 看到的++,表示步长为1
第 4 章 循 环 语 句 和 转 移 语 句 4.1 基本概念 1.循 环 体:被重复执行的程序段,可以是一个语句, 也可以是由多个语句组成的复合语句; 2.循环变量:用于控制循环次数的变量,常用i,j,k等; 3.嵌 套:一个控制结构中还包含另一个控制结构, 如选择中包含选择,循环套循环,选择套 循环,循环中套选择等; 4.死 循 环:循环无法中止的情况被称为死循环,如果遇 到死循环,可以用Ctrl+Break键中断跳出; 5.步 长:指循环变量每次变化的幅度。如经常可以 看到的i++,表示步长为1

第 4.2常用转移语句 4章 1.g0to语句标号:将程序流程转向指定标号处,已经很少 使用; 2.return(表达式):用于从函数返回表达式的值,在函数 语 中使用,见第6章; 3.break:强行中断语句,仅用于switch?结构和循环结构 中,使程序流程跳到结构之外的第一条语句; 转移语 4.continue:仅用于循环结构中,使循环体中之后的语句 不再被执行,请理解示例: int i; fori=0;i<10;i++) 请先预测结 {if (i%2==0)continue; 果再运行! printf("%5d",i);
第 4 章 循 环 语 句 和 转 移 语 句 4.2 常用转移语句 1.goto 语句标号:将程序流程转向指定标号处,已经很少 使用; 2.return(表达式):用于从函数返回表达式的值,在函数 中使用,见第6章; 3.break:强行中断语句,仅用于switch结构和循环结构 中,使程序流程跳到结构之外的第一条语句; 4.continue:仅用于循环结构中,使循环体中之后的语句 不再被执行,请理解示例: int i; for(i=0;i<10;i++) {if (i%2==0) continue; printf("%5d",i); } 请先预测结 果再运行!

第 4.3循环第一结构for 4章 for结构是C语言中使用最广泛、最灵活的结构。可以通 循环语句和 用于任何循环结构。一般形式: for(表达式1;表达式2;表达式3) {循环体] 表达式1:一般用于为循环变量赋初值、为循环作准 移语 备等; 2. 表达式2:一般为一个条件表达式,当值为非0时循环 得以执行; 3. 表达式3:一般用于改变循环变量的值,以使得条件 表达式的值向趋于0方向发展,从而结束循环
第 4 章 循 环 语 句 和 转 移 语 句 4.3 循环第一结构for for结构是C语言中使用最广泛、最灵活的结构。可以通 用于任何循环结构。一般形式: for(表达式1;表达式2;表达式3) {循环体} 1. 表达式1:一般用于为循环变量赋初值、为循环作准 备等 ; 2. 表达式2:一般为一个条件表达式,当值为非0时循环 得以执行; 3. 表达式3: 一般用于改变循环变量的值,以使得条件 表达式的值向趋于0方向发展,从而结束循环

第 4.3循环第一结构fon 章 4. for循环执行过程 表达式1 (1)先执行表达式1: 语 (2)执行表达式2,值为 假 真则执行循环体,否则结 表达式2 束循环; 真 转移语 循环体 (3)执行循环体 (4)执行表达式3,然后 表达式3 goto第(2)步。 出口
第 4 章 循 环 语 句 和 转 移 语 句 4.3 循环第一结构for 4. for循环执行过程 (1)先执行表达式1; (2)执行表达式2,值为 真则执行循环体,否则结 束循环; (3)执行循环体; (4)执行表达式3,然后 goto第(2)步。 出口 表达式2 循环体 真 假 表达式1 表达式3

第 4.3循环第一结构fon 章 5. 循环注意问题 表达式1 (1)无表达式1,循环 环 变量没有赋初值: 假 句 (2)无表达式2,循环没 表达式2 有结束控制; 真 转移语句 循环体 (3)无循环体,循环 般没有意义 表达式3 (4)无表达式3,死循环, 循环无法结束。 出口 (5)认真理解P104-105
第 4 章 循 环 语 句 和 转 移 语 句 4.3 循环第一结构for 5. 循环注意问题 (1) 无表达式1,循环 变量没有赋初值; (2)无表达式2,循环没 有结束控制; (3)无循环体,循环一 般没有意义; (4)无表达式3,死循环, 循环无法结束。 (5)认真理解P104-105 出口 表达式2 循环体 真 假 表达式1 表达式3

第 4.3循环第一结构for 4章循环语句和转移语句 示例1:用for语句改写引例 s=0,i=1 int i,s=0; 假 for(i=1;i<=100i++)》 i<=100 S=S+i; 真 printf("s=%d",s); S=S+i i++ 出口
第 4 章 循 环 语 句 和 转 移 语 句 4.3 循环第一结构for 示例1:用for语句改写引例 出口 i<=100 s=s+i 真 假 s=0,i=1 i++ int i,s=0; for(i=1;i<=100;i++) s=s+i; printf("s=%d",s);

第 4.3循环第一结构for 章 示例2:改写引例 环 int i=1,s; int i=1,s=0; 语 for(s=0;i100)break; int i,s; S=S+i; for(i=1,s=0;i<=n;) i计+ {S=s+ii++} printf("s=%d",s); printf("s=%d",s);
第 4 章 循 环 语 句 和 转 移 语 句 4.3 循环第一结构for 示例2:改写引例 int i=1,s; for(s=0;i100)break; s=s+i; i++; } printf("s=%d",s);

第 4.4循环第二结构whie 4章 示例2:改写引例 环 int i=1,s=0; int i=1,s=0; for(i<=100;) while(i<=n) 句和转移语 {S=S+ii++;} =j*ii++;} printf("s=%d",s); printf("s=%d",s); 对比可以看出,whi le结构就是将表达式1移到了循环 体前,表达式3移动了循环体中的fo结构
第 4 章 循 环 语 句 和 转 移 语 句 4.4 循环第二结构while int i=1,s=0; for(;i<=100;) {s=s+i;i++;} printf("s=%d",s); int i=1,s=0; while(i<=n) {j=j*i;i++;} printf("s=%d",s); 示例2:改写引例 对比可以看出,while结构就是将表达式1移到了循环 体前,表达式3移动了循环体中的for结构