第一讲
循环结构
思考:如何编程来计算1 + 2 + 3 + …+ 100?
程序如下:int s = 0;
s = s + 1;
s = s + 2;
s = s + 3;
……
s = s + 100;
printf (“s = %d”, s);
2
3
改进算法:
void main()
{
int n=100, sum;
sum=(1+n)*n/2;
printf(“%d”,sum);
}
采用合适的程序结构:
void main()
{
int n=1, sum=0;
while(n<=100)
{
sum+=n;
n++;
}
printf(“%d”,sum);
}
循环结构
控制语句
if( )~else~
switch
for( )~
while( )~
do~while( )
continue
break
goto
return
分支
循环
辅助控制
本章讨论
4
三种基本的循环语句
while(表达式) 语句
do 语句 while(表达式)
for(表达式1;表达式2;表达式3) 语句
5
while(表达式) 语句
do 语句 while(表达式)
for(表达式1;表达式2;表达式3) 语句
1. while语句
一般形式:
while (表达式)
循环体语句;
执行流程:
F
T
表达式
循环体
while
其中:
while后面的括号()不能省。
while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式。
表达式的值是循环的控制条件。
语句部分称为循环体,当需要执行多条语句时,应使用复合语句。
特点:先判断表达式,再执行循环体
6
例. 用while语句求1+2+3+…+100
#include <>
void main ( )
{
int i = 1, sum = 0;
while ( i <= 100 )
{
sum += i;
i++;
}
printf ("sum = %d\n", sum);
}
循环初值
循环终值
循环条件
循环体
循环变量增值
7
例. 显示1~10的平方
#include <>
void main ( )
{
int i = 1;
while ( i <= 10 )
{
printf ("%d*%d=%d\n", i, i, i*i);
i++;
}
}
运行结果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100
8
如果while后的表达式的值一开始就为假,循环体将一次也不执行。
循环体中的语句可为任意类型的C语句。
遇到下列情况,退出while循环:
表达式为假(为0)。
循环体内遇到break、continue或goto语句
while语句注意事项:
int a = 0, b = 0;
while (a > 0)
b++;
int num = 0;
while ( 1 )
{
if (getchar ( ) == '\n')
break;
num++;
}
9
(4) 在执行while语句之前,循环控制变量必须先初始化,否则执行的结果将是不可预知的。
(5) 要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。
(6) 允许while语句的循环体又是while语句,从而形成双重循环。
例:计算10!
#include <>
void main ( )
{
int i;
long s = 1;
while (i >= 1)
s *= i--;
printf ("10! = %ld\n", s);
}
i = 1;
while (i < 100)
sum += i;
printf ("sum = %d\n", sum);
i = 1;
while (i <= 9)
{
j = 1;
while (j <= 9)
{
printf ("%d * %d = %d\n", i, j, i * j);
j++;
}
i++;
}
10
第3章-循环结构-第1讲-循环结构 来自淘豆网www.taodocs.com转载请标明出处.