第五讲循环结构本节学习目标
循环结构
– while语句
– do…while 语句
– for 语句课堂练习
在屏幕上打印 5次 accp。
– #include <stdio.h>
– void main()
– {
– printf("accp\n");
– printf("accp\n");
– printf("accp\n");
– printf("accp\n");
– printf("accp\n");
– }
循环结构
什么是循环结构?
– — 在程序中反复执行某系列语句,直到不满足指定条件才终止代码。
循环结构的主要用到逻辑运算符和关系运算符。
循环语句
for 循环
while 循环
do...while 循环循环基本结构计算是否
while语句
基本格式
while ( 条件表达式 )
{
语句 ;
}
while范例
在屏幕上打印 5
次 accp
#include <stdio.h>
void main()
{
int i=1;
while (i<=5)
{
printf("ACCP\n");
i++;
}
}
while结构
1) 求解,循环继续条件,表达式 。
如果其值为非 0,
转 2) ;否则转 3) 。
2) 执行循环体语句组,然后转 1) 。
3) 执行 while语句的下一条 。
条件表达式?
执行语句是否
While范例
计算
1+2+3…+99+100
的和开始
i=1;
sum=0
i<=100
Sum=sum+i;
i++;
输出s u n
结束
yes
no
范例代码
include <stdio.h>
void main()
{
int i=1;
int sum=0;
while (i<=100)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
while语句注意事项
计数器变量的初始化。
计数器变量在执行语句中要发生变化。
条件最终必须为假,来结束语句,从而避免“死循环”。
见上述范例课堂练习
输出 1~10十个整数。
计算 1~100之间所有奇数的和。
do…while 循环
基本格式
do
{
语句 ;
}while(条件) ;
计算

do…while 范例
在屏幕上打印 5次 accp #include <stdio.h>void main()
{
int i=1;
do
{
printf("ACCP\n");
i++;
}while (i<=5);
}
do…while 注意事项
do...while 循环中先执行一次语句,然后再交给 while进行判断,当条件为假时退出循环。
do...while 循环中的控制权是在语句后方的 while。
while语句后方的 ;
与 while 语句的主要区别课堂练习
输出 1~10十个整数。
计算 1+2+3…+99+100 的和
for循环
基本格式
– for (循环变量初始化 ;条件表达式 ;循环变量增值 )
– {
语句;
– }
for范例
在屏幕上打印
5次 accp
#include <stdio.h>
void main()
{
int i;
for (i=1;i<=5;i++)
{
printf("ACCP\n");
}
}
for循环的执行过程
1、循环变量赋初值
2、求解,循环继续条件,
表达式。如果其值非 0,
执行( 3);否则,转至( 4)。
3、执行循环体语句组,
并求解,循环变量增值,表达式,然后转向( 2)。
4、执行 for语句的下一条语句。
赋初值条件表达式执行语句变量增值
for范例
计算
1+2+3…+99+100
的和开始结束
i=1;i<=100;
i++
定义i,s u m = 0 ;
输出s u m
Sum+=i;
是否
for范例(续)
#include <stdio.h>
void main()
{
int i;
int sum=0;
for (i=1;i<=100;i++)
{
sum+=i;
}
printf("sum=%d\n",sum);
}
for循环注意事项
1,for 循环条件语句中有三部分组成,三部分必须用,;”隔开。
2,for 循环中,循环变量初始值,可以为空,此时必须在
for 循环之前对其定义初始值。例如,for(;i<101;i++)
3,for 循环中,条件表达式,可以省略,此时程序会成为
,死循环,。
4,for 循环中,循环变量增值,可以省略,介必须在 for 循环语句中添加,保证程序正常运行。例:
for(I=1;i<101;)
{
……
I++;
}
for范例
#include <stdio.h>
void main()
{
int i=1;
int sum=0;
for (;i<=100;i++)
{
sum+=i;
}
printf("sum=%d\n",sum);
}
for范例
#include <stdio.h>
void main()
{
int i=1;
int sum=0;
for (;i<=100;)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
课堂练习
输出 1~10十个整数。
计算 1~100之间所有奇数的和。
循环语句的嵌套
#include <stdio.h>
void main()
{
int i,j;
for (i=1;i<=5;i++)
{
for (j=1;j<=i;j++)
{
printf("*");
}
putchar('\n');
}
}
循环嵌套(续)
for (var1=初值 ;var1<=范围; var1+=每次循环的增值 )
{
for (var2=初值 ;var2<=范围;
var2+=每次循环的增值 )
{…}
}…… …...
break语句
功能:
– Switch语句中终止
case语句。
– 强制性结束循环。
格式
– For(表达式 1)
– {
If (表达式 2)
Break;
……
– }
break范例
#include <stdio.h>
void main()
{
int i;
int sum=0;
for (i=1;i<=100;i++)
{
sum+=i;
if (sum>2500)/* 当和大于 2500时,停止循环 */
{
break;
}
}
printf("sum=%d,i=%d",sum,i);
}
课堂练习
计算当半径为 1~10时圆的面积,直到面积大于 100时,停止计算,将此时的半径和面积的值显示出来。
Continue语句
功能
– 结束本次循环,停止本次循环中其它的语句,直接进入下一次的循环。
格式
– For(表达式 1)
– {
If (表达式 2)
continue;
……
– }
continue范例
#include <stdio.h>
void main()
{
int i;
for (i=1;i<=100;i++)
{
if (i%3==0)
{
continue;
}
else
printf("%d\n",i);
}
}
跳转语句 ——goto
goto 语句将控制权传递给 C程序中同一函数内的其他语句
它实际上违背了严格的结构化程序设计语言的原则
它们降低了程序的可靠性,并使得程序难以维护
goto 标签 ;
通用语法:
goto语句
功能:
将控制权交给 C语言中的任意一条语句。
#include <stdio.h>
void main()
{
int i;
int sum=0;
for (i=1;i<=100;i++)
{
sum+=i;
if (sum>=2500)
{
goto leap;
}
}
leap:printf("sum=%d,i=%d\n",su
m,i);
}
选择一个循环
写程序时选择一个循环的形式是人为决定的
while 循环可以代替 for 循环,反之亦然
for循环每次更新循环计数变量的值后,
检查条件表达式,如果是真,循环体被执行一次,直到条件表达式为假
do…while 执行循环体至少一次选择一个循环
写程序时选择一个循环的形式是人为决定的
while 循环可以代替 for 循环,反之亦然
for循环每次更新循环计数变量的值后,
检查条件表达式,如果是真,循环体被执行一次,直到条件表达式为假
do…while 执行循环体至少一次课后作业
编写一个程序,在屏幕上显示出
100,95,90……10,5。
求 5!
输入 一个整数,求这个整数的阶层,
输入两个数,求出两数之间所有奇数的和。
思考题
在屏幕上显示如下图形(等边三角形 )
*
* *
* * *
* * * *