内容正文:
第四章
循环程序设计
1
Question
第一讲
while循环和do……while循环
2
知识精讲
04
前面我们学习了顺序结构、分支结构,下面我们来看一下,这个问题应该怎样解决?
“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
3
知识精讲
04
分析:
这个题目是经典的“百钱百鸡”问题,我们从数学中知道可以通过方程的方法解决:
设:公鸡x,母鸡y,鸡雏z,则:
x+y+z=100; 方程1
5x+3y+z/3=100 方程2
然后解方程组,找到我们需要的答案。
“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
4
知识精讲
04
“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
C语言提供了循环结构用于处理大量重复工作的过程。这就是循环结构。
不会解方程怎么办呢?我们可以来“凑”,假设只有1只公鸡,1只母鸡,然后从1只小鸡开始,2只、3只、4只……98只,然后假设只有1只公鸡,2只母鸡,然后再从1只小鸡开始,2只、3只、4只……97只,如此反复。
这种方法看起来很傻,但这就是计算机编程的一个运算过程。
5
知识精讲
04
C语言有三种类型的循环:while循环、do……while循环和for循环。
循环结构有两种形式:当型循环和直到型循环
“当型”循环:当条件成立时反复执行操作,直到条件为假时才停止循环。例如:while、for
“直到型”循环:先执行操作,再判断条件是否为真,若条件为真,再执行。如此反复,直到条件为假为止。 例如do……while
6
知识精讲
04
C语言有三种类型的循环:while循环、do……while循环和for循环。
C语言还提供了两个循环辅助语句:break和continue。
循环结构是结构化程序设计的三种基本结构之一。
循环结构有两种形式:当型循环和直到型循环
循环三要素:变量赋初值、循环语句、循环条件。
7
while循环
4.1
while语句是一种称为“当型”的循环。
一般形式:
while(表达式)
{
语句序列;
}
表达式
语句序列
假(0)
真(非0)
变量初始化
8
while循环
4.1
执行过程:
①:首先计算“表达式”的值,如果非0循环条件为真,则进入第②步,开始一次循环周期;如果为假,则进入第③步。
②:执行“{}”内的“语句序列”,这些语句序列称为“循环体”。循环体执行完后,返回第①步,开始下一轮循环测试。
③:结束循环,执行while循环后面的语句。
表达式
语句序列
假(0)
真(非0)
变量初始化
9
知识精讲
4.1
注意:
1、初始化应放在while前面;
2、这里的表达式与if语句里表达式相同,通常是关系表达式或逻辑表达式,但从理论上讲,可以是任意类型的表达式。
3、循环体语句可以是简单语句,也可以是复合语句,当循环体只有一条语句时,“{}”可以省略。。
4、循环必须在有限的次数内结束,否则会出现“死循环”,在程序中应当避免出现死循环。
5、while循环执行的特点是先判断条件然后执行循环体,因此,循环次数可能为0。
10
案例解析
4.1
例4-1:编程求 1+2+3+4+5
分析:
变量名 sum i 循环条件 ( i<=5 )
初始状态 0 1 真
第1轮循环后 0+1=1 2 真
第2轮循环后 0+1+2=3 3 真
第3轮循环后 0+1+2+3=6 4 真
第4轮循环后 0+1+2+3+4=10 5 真
第5轮循环后 0+1+2+3+4 +5 = 15 6 假(结束循环)
程序功能:求1+2+3+4+5的和。
循环三要素:循环变量i=1赋初值,记录所求和sum,结束循环条件:i>5;
循环过程:
11
案例解析
4.1
循环部分:
while(表达式)
{
语句序列
}
循环部分:
while(循环条件)
{
求和;
变量调整;
}
循环部分:
while(i<=5)
{
sum+=i;
i=i+1;
}
变量名 sum i 循环条件 ( i<=5 )
初始状态 0 1 真
第1轮循环后 0+1=1 2 真
第2轮循环后 0+1+2=3 3 真
第3轮循环后 0+1+2+3=6 4 真
第4轮循环后 0+1+2+3+4=10 5 真
第5轮循环后 0+1+2+3+4 +5 = 15 6 假(结束循环)
12
案例解析
4.1
例4-1:编程求 1+2+3+4+5
完整程序:
#include <stdio.h>
main( )
{ int sum,i;
sum=0;
i=0;
while(i<=5)
{
sum=sum+i;
i=i+1;
}
printf(“1+2+3+4+5=%d”,sum);
}
请大家将右侧的程序补充完整
13
案例解析
4.1
例4-1:编程求 1+2+3+4+5
完整程序:
#include <stdio.h>
main( )
{ int sum,i;
sum=0;
i=1;
while(i<=5)
{
sum=sum+i;
i=i+1;
}
printf(“1+2+3+4+5=%d”,sum);
}
请大家将右侧的程序补充完整
14
案例解析
4.1
例4-1:编程求 1+2+3+4+5
完整程序:
#include <stdio.h>
main( )
{ int sum,i;
sum=0;
i=1;
while(i<=5)
{
sum=sum+i;
i=i+1;
}
printf(“1+2+3+4+5=%d”,sum);
}
请大家将右侧的程序补充完整
15
案例解析
4.1
例4-1:编程求 1+2+3+4+5
完整程序:
#include <stdio.h>
main( )
{ int sum,i;
sum=0;
i=1;
while(i<=5)
{
sum=sum+i;
i=i+1;
}
printf(“1+2+3+4+5=%d”,sum);
}
请大家将右侧的程序补充完整
16
案例解析
4.1
例4-1:编程求 1+2+3+4+5
完整程序:
#include <stdio.h>
main( )
{ int sum,i;
sum=0;
i=1;
while(i<=5)
{
sum=sum+i;
i=i+1;
}
printf(“1+2+3+4+5=%d”,sum);
}
请大家将右侧的程序补充完整
17
案例解析
4.1
例:下面while循环的循环次数是:
int k=2;
while(k=0)
printf(“%d”,k);
k--;
printf(“
”);
A、无限次
B、0次
C、1次
D、2次
解析:
18
案例解析
4.1
例:下面while循环的循环次数是:
int k=2;
while(k==0)
printf(“%d”,k);
k--;
printf(“
”);
A、无限次
B、0次
C、1次
D、2次
解析:
19
案例解析
4.1
例:下面while循环的循环次数是:
int k=2;
while(k>0)
printf(“%d”,k);
k--;
printf(“
”);
A、无限次
B、0次
C、1次
D、2次
解析:
20
案例解析
4.1
例:下面while循环的循环次数是:
int k=2;
while(k>0)
{ printf(“%d”,k);
k--;}
printf(“
”);
A、无限次
B、0次
C、1次
D、2次
解析:
21
$$