章 | 节 | 知识点 | 精讲文档 |
第六章 循环结构 | 6.1 while循环结构 | while语句 | while语句的形式: while (表达式) 语句 只要循环表达式的值为真,就执行语句。
|
循环体 | 循环条件成立时执行的语句,即为循环体。 | ||
死循环 | 一个无法靠自身的控制终止的循环称为“死循环”。 | ||
累加求和算法 | 算法思路: 在循环中反复执行“s=s+t”,其中t表示每次要加的项,分析t的变化规律,控制好循环次数或循环条件。 | ||
6.2 do-while循环结构 | do-while语句 | 形式为: do 语句 while (表达式); | |
while语句与do-while语句比较 | while循环的特点是: 先判断条件表达式,后执行循环体语句。 do---while语句特点: 先执行循环体,再判断循环条件是否成立,循环体至少执行一次。 | ||
6.3 for循环结构
| for语句 | for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句 执行过程: ①求解表达式1。 ②求解表达式2,若值为真,则执行循环体语句,再转第③步。若为假,则结束循环。 ③求解表达式3。 ④转回第②继续执行。 | |
空语句 | 空语句只有一个分号(;),它什么也不做。 | ||
计数控制的循环 | 假设循环n次: i=1; while(i<=n) {…… i++; } 或 for(i=1;i<=n;i++) {……} | ||
条件控制的循环 | 条件控制的循环形式如下: 设置循环初始条件; While 或for (循环条件) {…… 修改循环条件; } | ||
6.4循环嵌套
| 循环嵌套各种形式 | 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。 三种循环可互相嵌套。
| |
穷举法 | 题目:把1元5角钱人民币兑换成1分、2分和5分的硬币(每一种都要有)共100枚,问共有多少种兑换方案?每种方案各换多少枚? 解题思路: 若设5分硬币枚数为x,2分硬币枚数为y,1分硬币枚数为z,则有:x+y+z=100,5x+2y+z=150,由于每种硬币都要有,故5分硬币最多可换28枚,2分硬币最多可换72枚,1分硬币可换100-x-y枚,x,y,z只需满足第2个方程即可。这里用一个两层循环,外层控制x的变化,内层控制y的变化。主要程序段如下: for(x=1;x<=28;x++) for(y=1;y<=73;y++) { z=100-x-y; if(5*x+2*y+z==150) { count++; printf("%-5d%-5d%-5d\n",x,y,z); } } printf("兑换方案共%d种\n",count); | ||
6.5 break语句和continue语句 | break语句 | break语句:从循环体内跳出,即提前结束循环,接着执行循环下面的语句。 | |
求素数算法 | 题目:输入一个大于3的整数n,判定它是否素数。 解题思路: 让n被i整除(i的值从2变到n-1) 如果n能被2~(n-1)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除,因此,可以提前结束循环 注意:此时i的值必然小于n 主要程序段如下: for (i=2;i<=n-1;i++) if(n%i==0) break; if(i<=n-1) printf("%d is not\n",n); | ||
continue语句 | continue语句: 用来结束本次循环,即跳过循环体中下面尚未执行的语句,判定是否执行下一次循环。 |

