第5章循环结构程序设计 循环语句 break和 continue语句 循环嵌套
第5章 循环结构程序设计 循环语句 break 和 continue 语句 循环嵌套
5.1循环语句 问题 ·打印整数1~10 while(i<=10) printf(%d,i) 打印整数1~100 + 打印整数1~n =1: printf(%d,1) printf( %d",i; i++ printf(%d", 2) printf( %d,i;i++ printf( %d, 10) printf( %d,i); i++
5.1 循环语句 问题 • 打印整数1~10 • 打印整数1~100 • 打印整数1~n printf("%d", 1); printf("%d", 2); …… printf("%d", 10); i=1; printf("%d", i); i++; printf("%d", i); i++; …… printf("%d", i); i++; i=1; while(i<=10){ printf("%d", i); i++; }
while语句 Whle(表达式) =1 语句; while(i<=10) printf( %d", i) 循环条件 1++ 0 表达式 非0 语句 循环体 循环不变式 改变循环条件
while 语句 while (表达式) 语句; 语 句 表达式 非0 0 i=1; while(i<=10){ printf("%d", i); i++; } 循环条件 循环体 循环不变式 改变循环条件
sum=0 求sum=∑i 1: while(i sum ++; sum+2-> sum sum+3-> sum sum +10-> sum sum=sum+? 循环不变式
10 求 sum= i i=1 sum=0 sum+1 —> sum sum+2 —> sum sum+3 —> sum …… sum+10 —> sum sum=sum+? sum=0; i=1; while(i<=10){ sum=sum+i; i++; } 循环不变式
for语句 expl for(exp1; exp2; exp3) 语句; exp2 非0 循环条件 语句 循环体 exp3
for 语句 for (exp1; exp2; exp3) 语句; exp3 exp2 非0 0 循环条件 exp1 语 句 循环体
While(表达式) for(exp1; exp2 exp3) 语句; 语句; exp l 0 表达式 exp2 0 非 非0 语句 语句 exp3 exp while(exp2) i 语句; exp3, Whie和for
while (表达式) 语句; 语 句 表达式 非0 0 for (exp1; exp2; exp3) 语句; exp3 exp2 非0 0 exp1 语 句 exp1; while(exp2){ 语句; exp3; } while 和 for
whie和for exp1 while(exp2 语句; xp3 While(表达式) for(exp1; exp2; exp3) 句; 语句; sum=0 sum=0 for(=1;i<=10;i++) while(i<=10) sum=sumtI sum=sum+ H++;
while 和 for while (表达式) 语句; for (exp1; exp2; exp3) 语句; exp1; while(exp2{ 语句; exp3; } sum=0; i=1; while(i<=10){ sum=sum+i; i++; } sum=0; for(i=1; i<=10; i++) sum=sum+i;
程序举例 例T1-1求1+2+3+4+…n 例T1-2求1+1/2+1/3+114+.+1/n 例T1-3求1-1/2+1/3-14+.1n 例T1-4求1-1/3+1/5-1/6+.前n项之和 例T2-1求n 例T22求x 例T3-1求1-1/3+1/5-1/7+…,直到最后1项的绝对值<105 例T4-1输入100个整数,求其中正数之和 例T4-2输入一个正整数n,再输入n个数,输出最大值 例T5输出 Fibonacci序列前20个数
程序举例 例T1-1 求1+2+3+4+……+ n 例T1-2 求1+1/2+1/3+1/4+……+ 1/n 例T1-3 求1-1/2+1/3-1/4+…… 1/n 例T1-4 求1-1/3+1/5-1/6+…… 前n项之和 例T2-1 求n! 例T2-2 求x n 例T3-1 求1-1/3+1/5-1/7+…… ,直到最后1项的绝对值<10-5 例T4-1 输入100个整数,求其中正数之和 例T4-2 输入一个正整数n, 再输入n个数,输出最大值 例T5 输出Fibonacci序列前20个数
例T11求1+2+3+4++n 算法 =1 to n s=S+t t++ +十 算法: 程序段: =1 to n S=0 S=S+ for(=1;i<≡n;H+) H+十 S=s+;
例T1-1 求1+2+3+4+……+ n 算法: i =1 to n s=s+t t++ i++ 程序段: s=0; for(i=1; i<=n; i++) s=s+i; 算法: i =1 to n s=s+i i++
例T12求1+12+1/3++1hn 算法: i=1 to n S=S+ t++ 十十 程序段: S=0; 算法: or(i=1;i<=n;+) i=1 to n S=s+1.0/ S=S+t t=1.0 H+十
例T1-2 求1+1/2+1/3+……+ 1/n 算法: i =1 to n s=s+t t=1.0/i i++ 程序段: s=0; for(i=1; i<=n; i++) s=s+1.0/i; 算法: i =1 to n s=s+t t++ i++