解决迭代问题好帮手——循环结构while语句
主讲人:周芸
掌握while语句的语法结构;
理解while语句的执行过程;
会读、编写简单的while程序。
引入
十字路口的红绿灯每天都在不停地循环闪烁从而使得人们能有序出行。用C语言如何模拟实现此场景呢?
#include
main( )
{
printf(“下面进入红绿灯演示程序\n");
printf(“红灯亮\n");
printf(“绿灯亮\n");
printf(“黄灯亮\n");
……
}
无限制地循环闪烁,程序应该如何实现呢?
含义:在一定条件下,重复执行某些操作。
与顺序结构、选择结构三大结构。
优势:使得代码更加简洁,易读
一、while语法结构
while (条件表达式)
{
语句组;
}
循环条件
循环体
含义:当条件表达式为真就重复执行语句组。
while循环又称“当型循环”,即先测试循环条件再执行循环体。当条件成立时才执行后面的循环体语句,否则不执行。
一、while语法结构
while (条件表达式)
{
语句组;
}
条件表达式结果:真或假
1.可以是关系表达式或逻辑表达式
2.可以是单个常量或变量
C语言规定:非零即真
while(-3)
真
i=0;
假
while(0)
假
while(i)
i=‘a’;
真
while(i)
一、while语法结构
while (条件表达式)
{
语句组;
}
循环体
语句组是一条语句时,花括号可以去掉。
while (条件表达式)
语句;
while (条件表达式)语句;
二、while流程图
while (条件表达式)
{
语句组;
}
该语句的程序流程如下图所示。
语句组
条件表达式
真
假
先测试循环条件再执行循环体,
循环体有可能一次都不能执行。
三、任务分析及关键代码
条件:设备正常且有电。
重复动作: 红灯亮 绿灯亮 黄灯亮
while (条件表达式)
{
循环体语句组;
}
while (设备正常且有电)
{
红灯亮;绿灯亮;黄灯亮
}
i==1表示设备正常且有电;i==0表示不正常
while (i==1)
{
printf(“红灯亮\n”);
printf(“绿灯亮\n”);
printf(“黄灯亮\n”);
}
四、完整程序实现
#include
main(){
int i=1;//1正常且有电,0不正常
printf(“请输入1(表示设备正常有电)0(不正常)\n");
scanf(“%d”,&i);
while(i==1){
printf(“红灯亮\n");
printf(“绿灯亮\n");
printf(“黄灯亮\n");
}
}
i的值为1,则为死循环;
五、程序运行
六、程序改进
条件:显示10次。
重复动作:红灯亮;绿灯亮;黄灯亮
while (i==1)
{
printf(“红灯亮\n”);
printf(“绿灯亮\n”);
printf(“黄灯亮\n”);
}
变量 i 用于计数,初值为1;
int i=1;
while (i<=10){
printf(“红灯亮\n”);
printf(“绿灯亮\n”);
printf(“黄灯亮\n”);
i=i+1;
}
改变循环条件
变量初值、条件及改变条件语句的关系:1、 i<=10 及i++
i++;
六、程序改进
int i=10;
while (i>0){
printf(“红灯亮\n”);
printf(“绿灯亮\n”);
printf(“黄灯亮\n”);
i--;
}
int i=1;
while (i<=10){
printf(“红灯亮\n”);
printf(“绿灯亮\n”);
printf(“黄灯亮\n”);
i++;
}
初值
条件
改变量
总结
while的特点:
1. 用于执行有规律的重复动作,如累加或累乘等。
3.一般用于循环次数未知的情况。
4.循环三大要素:条件,循环体, 改变条件的语句(改变量)
2.如果条件永远为真,则出现死循环。
谢 谢