第 6章循环结构程序设计
while语句
do-while语句
for语句
终止循环语句
多重循环
程序设计举例
while语句
格式: while (条件表达式) 语句
功能: 条件表达式描述循环的条件, 语句描述要反复执行的操作, 称为循环体。
先计算条件表达式的值, 当条件表达式的值为真时, 代表循环的条件成立, 执行循环体。当条件表达式的值为假时, 代表循环的条件不成立, 退出循环, 执行循环下一条语句。
while语句是当循环的条件成立时, 反复执行的循环。
说明:
(1) while语句是先判断, 后执行。如果循环的条件一开始不成立(条件表达式为假), 则循环一次都不执行。
(2) 循环体中必须有改变循环条件的语句, 否则循环不能终止, 形成无限循环。
(3) 循环体为多条语句时, 必须采用复合语句。
(4) 当循环条件为永真条件时, 将变成无限循环。可以利用break语句终止循环的执行。
(5) 等价的 if 语句加goto语句形式如下:
标号: if (条件表达式)
{ 循环体;
goto 标号;
}
例 6 – 1 求一些正数的和。
/*程序 6 - 1, 求一些正数之和*/
main( )
{float x; /*存放当前输入的数*/
float sum=0; /*存放和, 初值为0*/
printf(″%f″, &x); /*输入第一个数*/
while (x>0)
{sum+=x; /*累加*/
scanf(″%f″, &x); /*输入下一个数, 仍然放入x中, 接下去判断循环的条件是否满足*/
}
printf(″和=%″, sum); /*输出所求一些数的和*/
}
输入数据: 0
0作为一些数的结束。
运行结果: 和=
例 6 – 2 计算 1+2+3+…+100。
/*程序 6 - 2, 计算 1+2+3+…+100 */
main( )
{int i=1; /*i 存放项, 初值为1*/
int sum=0;
while (i<=100)
{sum+=i; /*当i<=100, 累加*/
i++; /*i的值改变为下一个自然数, 改变后接下去判断循环的条件是否满足*/
}
printf(″1+2+3+…+100=%d″, sum); /*输出所求和*/
}
运行结果: 1+2+3+…+100=5050
例 6-3 求一些正数的积。
/*程序 6-3, 求一些正数的积*/
main( )
{float x; /*存放当前输入的数*/
float m=1; /*存放积, 初始化为1*/
scanf(″%f″, &x);
while(x>0)
{m*=x; /*累乘*/
scanf(″%f″, &x); /*输入下一个数, 仍然放x中*/
}
printf(″积=%″, m);
}
输入数据: 2 5 0
运行结果: 积=
例 6 –4 计算1*2*3*…*100, 实际上求100!。
/*程序 6-4, 计算1*2*3*…*100*/
main( )
{int i=1;
double m=1;
while (i<=100)
{m*=i;
i++;
}
printf(″1*2*3*…*100=%f″, m);
}
运行结果: 1*2*3*…*100= 621 544 394 410 22e+157
do-while语句
do-while语句是while语句的倒装形式。
格式: do 语句 while (条件表达式)
功能: 先执行循环体, 再计算条件表达式的值。当条件表达式的值为真时, 代表循环的条件成立, 继续执行循环。当条件表达式的值为假, 代表循环的条件不成立, 退出循环。
do-while语句是反复执行循环, 直到循环的条件不成立。
说明:
(1) do-while语句是先执行, 后判断。如果循环的条件一开始就不成立, 循环也将执行一次。
(2) 与while语句一样, 循环体中同样必须有改变循环条件的语句, 否则循环不能终止, 形成无限循环。
(3) 循环体为多条语句时必须采用复合语句。
(4) 当循环条件为永真条件时, 将变成无限循环。可利用break语句终止循环的执行。
(5) 与其它高级语言不同, C语言的直到循环与当循环的条件是同一的, 其它高级语言中是互为相反条件。
(
6 循环结构程序设计 来自淘豆网m.daumloan.com转载请标明出处.