内容正文:
第5章 循环结构
循环的基本要素有三个:
循环入口(即循环的初始化条件)
循环出口(即循环的终止条件)
循环体(反复执行的部分)
C语言提供了3种循环语句实现循环结构
5.1 while语句
5.2 do-while语句
5.3 for语句
5.4 转移语句
5.5 举例
巩固练习
图1.6 当型循环结构
A
当p为真
语义:
计算表达式的值,
当值为非0 (真)时,执行循环体语句。重复上述操作,直到表达式的值为0(假)时,跳出循环,转而执行while语句的后续语句。
5.1 while语句
while语句的一般形式为:
while (表达式) 语句;
图5.1 while语句的语义
表达式
语句
sum=0,i=1
i <=100?
sum=sum+i
i=i+1
输出sum
while (i<=100)
{
sum=sum+i;
i=i+1;
}
3
i循环变量(强调)
sum=0,i=1
i <=100?
sum=sum+i
i=i+1
输出sum
【例5.1】计算
i<=n
输出sum
sum=sum+i;
i++;
图5.2 例5.1N-S图
定义变量i=1, sum=0和n
输入正整数给n
思考:
2.求1+1/2+1/3+…..+1/n
3.求1-1/2+1/3-….. -1/n
1.求
/* 求n个自然数的累加和 */
#include "stdio.h"
main()
{
int n,i=1,sum=0;
printf("Enter a number :");
scanf("%d",&n);
while (i<=n)
{ sum+=i;
i++;
}
printf("Sum is %d",sum);
}
sum称为累加器,使用前要进行初始化,一般初始化为0
i被称为计数器,使用前要进行初始化,一般初始化为0或1
使用while语句应注意以下几点:
while语句中的表达式可以是任意表达式,一般是关系表达或逻辑表达式,只要表达式的值为非0 (真)则继续循环。
如: while (n- -) printf("%d ",n);
循环体可以是空语句、单语句或用花括号括起来的复合语句。
应注意循环条件的选择以避免死循环。例如下列循环语句:
while(n=10) printf("%d ",n++);
while语句从语法上来说是一条完整的控制语句。
死循环
允许while语句的循环体语句又是while语句,从而形成循环嵌套。 如:
i=1;
while(i<=9) /* 外循环 */
{ j=1;
while(j<=i) /* 内循环 */
{ printf("%4d ",i*j);
j++; }
i++;
printf("
");
}
使用while语句应注意以下几点:
九九乘法表
6
分析5的功能
6. while语句实现的循环结构特点:
先判断循环条件,后执行循环体。若一开始循环条件就不成立,则循环体一次也不执行:
int i=0;
while(i>100) sum+=i;
使用while语句应注意以下几点:
7
分析5的功能
5.2 do-while语句
do-while语句的一般形式为:
do
语句;
while(表达式);
图5.4 do-while语句的语义
表达式
语句
语义:
先执行循环体语句一次,
再判别表达式的值,若为非0 (真)则继续执行循环体语句,否则终止循环,转而执行do while语句后面的语句。
/* 求n个自然数累加和 */
main ( )
{
int n,i=1,sum=0;
printf("Enter a number :");
scanf("%d",&n);
do
{ sum+=i;
i++;
}
while ( i<=100 );
printf ("%d",sum );
}
/* 求n个自然数的累加和 */
#include "stdio.h"
main()
{
int n,i=1,sum=0;
printf("Enter a number :");
scanf("%d",&n);
while (i<=n)
{ sum+=i;
i++;
}
printf("Sum is %d",sum);
}
注意观察
8
如果i有一开始就不