概述
while
执行流程:先判断循环控制表达式 Exp_cntrl 的值,当该表达式的值为逻辑真(非 0)时,会一直执行循环体,直到表达式的值为逻辑假(0)才结束循环。
通常把循环控制表达式 ExP_cntrl 中含有的变量,称为循环控制变量。为了避免程序陷入死循环,必须要有能改变循环控制变量的语句,使循环控制表达式 Exp_cntrl 的值趋于逻辑假,以便使循环趋于终止。
【例 1】统计输出 100 以内的所有奇数之和。
分析:本题是重复执行“把 100 以内的当前奇数 1、3、5、7,… 累加求和”的相似操作,故采用循环结构。循环算法的关键是要确定循环条件表达式和循环体。
循环控制变量及初始条件确定:由题意可知,奇数 i 作为循环控制变量,初值为第一个奇数,即 i=1。另外,还有求和变量 sum=0。
循环条件表达式的确定:循环控制变量 i 为 [1,100] 间的奇数。故循环条件表达式为 i<=100。
循环体确定:该题循环体中包含以下两部分操作。
- 把当前奇数变量 i 累加到求和变量 sum 中,即 sum+=i;
- 为计算当前奇数的下一个奇数做准备,也就是控制变量的增量部分,即 i+=2。
代码如下:
#include<stdio.h>
int main (void){
int sum=0,i=1; //i初始为第一个素数
while (i<=100) //循环执行的判断条件
{
sum+=i;
i+=2; //控制变量的增量
}
printf("sum=%dn",sum);
return 0;
}
运行结果为:
sum=2500
需要说明的是,必须在零的基础上进行累加,故 sum 需要初始化为 0,否则将是无意义的随机值。循环控制条件不必刻意去思考最后一个奇数是否包含 100,让程序根据奇数的定义及相邻奇数的差值自行计算确定 100 以内的最后一个奇数。
do-while循环
do-while 循环的格式如下。
do{
Statement _1;
Statement _2;
}while(Exp_cntrl);//分号不可丢
当循环体为一条简单语句时,可以省略 {}
,即:
do
Simp1e_Statement;//循环体
while(Exp_cntrl);
注意,在 do-while 结构中,while 括号后的分号不能丟。
do-while 循环的执行流程是:首先无条件地执行一次循环体,然后再根据循环控制表达式的值来判断是否继续执行循环体。若为真,则继续执行;若为假,则停止执行,退出 do-while 循环。也就是说,do-while 循环至少执行一次循环体。
do-while 循环和 while 循环的主要差别是:前者至少执行一次循环体,后者有可能一次也不执行循环体。
do-while 循环的执行流程图
do-while 循环主要用在一直进行尝试性的操作,直到满足条件为止的情景。
【例 2】编程实现猜数字游戏,假设谜底为 0〜10 的整数,猜谜者每次输入一个整数,直到猜对为止。
分析:本题属于先输入所猜数字才能判断是否猜中,如果猜中,游戏结束,如果没猜中,继续猜,直到猜中为止。故该题符合 do-while 循环的使用场景。
代码如下:
#include<stdio.h>
int main (void){
int pwd=7,gs; //pwd:谜底
printf ("tGames Beginn");
do{
printf("Please guess (0~10):");
scanf("%d",&gs);
}while(gs!=pwd);
printf ("tSucceed!n");
printf ("tGaines overn");
return 0;
}
运行结果:
Games Begin
Please guess (0~10):3
Please guess (0~10):5
Please guess (0~10):8
Please guess (0~10):7
Succeed!
Gaines over
最后
以上就是舒服航空为你收集整理的C语言:while与do while循环语句的全部内容,希望文章能够帮你解决C语言:while与do while循环语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复