
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

第6章循环控制结构 6.1循环控制结构 6.2 while语句 6.3 do while语句 6.4逗号运算符和逗号表达式 6.5for语句 6.6空语句在循环中的使用 6.7循环语句的选择 6.8循环嵌套 6.9 break和continue语句
第6章 循环控制结构 6.1 循环控制结构 6.2 while语句 6.3 do while语句 6.4 逗号运算符和逗号表达式 6.5 for语句 6.6 空语句在循环中的使用 6.7 循环语句的选择 6.8 循环嵌套 6.9 break和continue语句

6.1循环控制结构-P92 思考:如何编程计算1+2+3+.+100? +重复100次? 程序如下:ints=0 s=s+1; s=s+2; s=s+3; 有更好的方法? s=s+100; printf ("s %d",s); 循环!!!
思考:如何编程计算1 + 2 + 3 + . + 100? 程序如下: int s = 0; s = s + 1; s = s + 2; s = s + 3; . s = s + 100; printf ("s = %d" , s); +重复100次? 循环!!! 6.1 循环控制结构-P92 有更好的方法?

·发现重复性动作到写好一个循环结构通常包括: ①循环中涉及哪些变量? ②循环开始前应该赋给它们什么初值? ③循环体中应该如何修改它们? ④在什么情况下应该继续(或应该终止)循环? ⑤循环终止后如何得到所需要的结果? 循环设计四要素: ①循环变量的初始化; ②循环条件的设置; ③循环体; ④循环控制变量的改变
• 发现重复性动作到写好一个循环结构通常包括: ① 循环中涉及哪些变量? ② 循环开始前应该赋给它们什么初值? ③ 循环体中应该如何修改它们? ④ 在什么情况下应该继续(或应该终止)循环? ⑤ 循环终止后如何得到所需要的结果? 循环设计四要素: ① 循环变量的初始化; ② 循环条件的设置; ③ 循环体; ④ 循环控制变量的改变

C语言循环控制语句 >while语句 >do.while语句 >for语句
C语言循环控制语句 Øwhile语句 Ødo.while语句 Øfor语句

1、whi1e语句-P93 格式: >执行流程: while while(表达式) 循环体语句; 表达式 特点:先判断表达式,再确定是否执行循环体。 循环体 注意: ①表达式的括号()不能省; ②表达式可以是任意类型的表达式; ③表达式的值是循环的控制条件; ④如果循环体是多条语句-一必须使用复合语句; ⑤循环体内可以包含任何合法C语句
1、while语句—P93 while (表达式) 循环体语句; Ø 执行流程: T 表达式 注意: ① 表达式的括号()不能省; ② 表达式可以是任意类型的表达式; ③ 表达式的值是循环的控制条件; ④ 如果循环体是多条语句-必须使用复合语句; ⑤ 循环体内可以包含任何合法C语句。 特点:先判断表达式,再确定是否执行循环体。 格式:

begin 例如:求1+2+3+.+100 sum=0;i=1; N ① inti=1,sum=0;1∥循环变量i的初始化 1≤100 ② while(i<=100)/循环条件的设置 F ③ { sum=sum+i; ④ sum=sum+i; i=i+1; ⑤ t+; /循环控制变量的改变 ⑧ 输出sum ⑦ printf ("sum %d",sum); end 循环条件 初值 真 真 真 真 真 真 真 假 循环次数 1 2 3 4 。 99 100 101 sum e 1 3 6 10 5058 1 1 2 3 4 5 106 101
① int i=1 , sum = 0; //循环变量 i 的初始化 ② while (i<=100) //循环条件的设置 ③ { ④ sum=sum+i; ⑤ i++; //循环控制变量的改变 ⑥ } ⑦ printf ("sum = %d" , sum); 例如:求 1 + 2 + 3 + . + 100

2、如何终止while循环.-改变循环条件 例如:1+2+3+4+5 代码1: 死循环! ① int i=1,s=0, =1) ③ {s=s+i;++i} ③ {s=s+i;-i} ④ printf("s=%d",s); ④printf("s=%d",s) 结论:要正确设计循环体。在循环体中,必须让循环变量朝着正 确的方向变化,循环才能正常结束
2、如何终止 while循环 -改变循环条件 例如:1+2+3+4+5 结论:要正确设计循环体。在循环体中,必须让循环变量朝着正 确的方向变化,循环才能正常结束。 代码2: ① int i = 1,s = 0; ② while (i =1) ③ { s = s + i; -i;} ④ printf("s=%d" ,s); 死循环! √ √ × ×

3、while循环应用举例 例1:输入一批整数,以0结束,求最大、和、平均。 #include 算法分析:整数的个数不确定、找最 ① ② int main() 大一打擂台 ③ int x,max,n=0; 1)$=0,n=0: ④ double s=0; 2)输入第一个数X ⑤ scanf("%d",&x;∥输入第一个数 3)若x1=0 ⑧ while(xl=O】 ① if (n==0)max=x; ⑦ 【t(n==0)max=x;∥给max赋初值 ② else ⑧ else if (x>max)max=x; ③ if (max<x)max=x;} ⑨ S=S+X;n++; ④ ⑩ s=s+x;n++; scanf("%d",&x);/输入下一个数 ⑤ 输入下一个数x,转到3)》 ① @ printf("%d %lf %lfn",max,s,s/n); 4)输出max、s、s/n ⑧ return 0; ④
3、while循环应用举例 例1:输入一批整数,以0结束,求最大、和、平均。 ① #include ② int main() ③ { int x,max,n=0; ④ double s=0; ⑤ scanf("%d",&x); //输入第一个数 ⑥ while (x!=0) ⑦ { if (n==0) max=x; //给max赋初值 ⑧ else if (x>max) max=x; ⑨ s=s+x; n++; ⑩ scanf("%d",&x); //输入下一个数 ⑪ } ⑫ printf("%d %lf %lf\n",max,s,s/n); ⑬ return 0; ⑭ } 算法分析:整数的个数不确定、找最 大—打擂台 1)s=0 , n=0; 2)输入第一个数 x 3)若 x!=0 ① if (n==0) max=x; ② else ③ { if (max<x) max=x;} ④ s=s+x; n++; ⑤ 输入 下一个数 x,转到3) 4)输出max 、s、s/n

3、while循环应用举例 例2:输入一个正整数,反序输出各位数(输入:12345,输出54321) 算法: 1)定义x是long int,m是int 2)输入X 3)若x>0则:m=X%10,输出m;x=x/10; 转到3)继续。 程序: ① #include ② int main() ③ long int x; int m; ④ scanf("%ld",&x); ⑤ while (x>0) ⑥ m=x%10; W取个位 ⑦ printf("%d",m;/输出个位 ⑧ x=x/10; lx去掉个位 ⑨ } ⑩ return 0; ①
3、while循环应用举例 例2: 输入一个正整数 , 反序输出 各位数(输入: 12345, 输出5 4 3 2 1 ) 算法: 1)定义 x是long int ,m 是int 2)输入x 3)若x>0 则: m= x % 10, 输出 m;x=x/10; 转到 3)继续。 程序: ① #include ② int main() ③ { long int x; int m; ④ scanf("%ld" ,&x); ⑤ while (x>0) ⑥ { m=x%10; // 取个位 ⑦ printf("%d " ,m); //输出个位 ⑧ x=x/10; //x 去掉个位 ⑨ } ⑩ return 0; ⑪ }