微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机之C语言-4.5基本语句之循环语句

51单片机之C语言-4.5基本语句之循环语句

时间:11-21 来源:互联网 点击:
1.循环语句while

循环结构是程序中一种很重要的结构。

while语句的一般形式为:

while(表达式)语句

其中表达式是循环条件,语句为循环体。

while语句的语义是:计算表达式的值,当值为真(非零)时,执行循环体语句。其执行过程可用下图表示。

图4-5-1 while循环执行过程

while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。

2.循环语句do-while

do-while语句的一般形式为:

do

语句

while(表达式)

其执行过程可用如下流程图表示,

这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。

3.循环语句for

for循环的一般形式为:

for (表达式1;表达式2;表达式3)

{

语句;

}

执行过程:

(1)计算”表达式1”(“表达式1”通常称为”初值设定表达式”).

(2)计算”表达式2”(“表达式2”通常称为”终值条件表达式”)。若其值为非零,执行步骤(3);若其值为零,执行步骤(5)

(3)执行一次for循环中的语句

(4)计算”表达式3”,跳到步骤(2)

(5)结束循环,执行for循环之后的语句

例如:

for(i=0;i<8;i++)num=num+i;

关于for循环在前面章节的讲解中我们已经使用过了,相信大家已经会使用了。这里需要注意的是for循环的执行过程。

这里再对for循环语句的几种特例进行简单描述。所谓特例实际上是当for循环中”表达式1”, ”表达式2”, ”表达式3”部分省略的情况下,程序如何执行。

(1)三个表达式为空

for(;;)

{

语句1;

语句2;

}

在以上for循环中没有表达式1,2,3均为空,表示没有初值,没有判断条件,没有增量变化,这是一个死循环,相当于while(1)语句。

#include "reg52.h"

void main(void)

{

for(;;)//可以代替while(1)

{

//语句1;

//语句2;

}

}

(2)第一个表达式为空

for(;i<=100;i++)sum=sum+i;

以上for循环中表达式1无,i不做初始值设置,i的值取决于该程序前面对i的处理

(3)第二个表示为空

for(i=1;;i++)sum=sum+i;

以上程序表达式2为空,不判断条件,那么该循环也是死循环。相当于:

i=1;

while(1)

{

sum=sum+i;

i++;

}

(4)表达式1和表达式3为空

for(;i<=10;)

{

num=num+i;

i++;

}

以上for循环中,表达式1和3为空,相当于

while(i<=10)

{

num=num+i;

i++;

}

(5) for循环中没有执行语句(循环体)

for(i=0;i<8;i++)

{

;

}

以上for循环中无循环体,起到延时的作用,也可以简写为,

for(i=0;i<8;i++);

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top