51單片機之C語言-4.5基本語句之循環(huán)語句
循環(huán)結構是程序中一種很重要的結構。
本文引用地址:http://m.butianyuan.cn/article/201611/319555.htmwhile語句的一般形式為:
while(表達式)語句
其中表達式是循環(huán)條件,語句為循環(huán)體。
while語句的語義是:計算表達式的值,當值為真(非零)時,執(zhí)行循環(huán)體語句。其執(zhí)行過程可用下圖表示。
while語句中的表達式一般是關系表達式或邏輯表達式,只要表達式的值為真(非0)即可繼續(xù)循環(huán)。
2.循環(huán)語句do-while
do-while語句的一般形式為:
do
語句
while(表達式)
其執(zhí)行過程可用如下流程圖表示,
這個循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語句,然后再判斷表達式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語句。
3.循環(huán)語句for
for循環(huán)的一般形式為:
for (表達式1;表達式2;表達式3)
{
語句;
}
執(zhí)行過程:
(1)計算”表達式1”(“表達式1”通常稱為”初值設定表達式”).
(2)計算”表達式2”(“表達式2”通常稱為”終值條件表達式”)。若其值為非零,執(zhí)行步驟(3);若其值為零,執(zhí)行步驟(5)
(3)執(zhí)行一次for循環(huán)中的語句
(4)計算”表達式3”,跳到步驟(2)
(5)結束循環(huán),執(zhí)行for循環(huán)之后的語句
例如:
for(i=0;i<8;i++)num=num+i;
關于for循環(huán)在前面章節(jié)的講解中我們已經使用過了,相信大家已經會使用了。這里需要注意的是for循環(huán)的執(zhí)行過程。
這里再對for循環(huán)語句的幾種特例進行簡單描述。所謂特例實際上是當for循環(huán)中”表達式1”, ”表達式2”, ”表達式3”部分省略的情況下,程序如何執(zhí)行。
(1)三個表達式為空
for(;;)
{
語句1;
語句2;
}
在以上for循環(huán)中沒有表達式1,2,3均為空,表示沒有初值,沒有判斷條件,沒有增量變化,這是一個死循環(huán),相當于while(1)語句。
#include "reg52.h"
void main(void)
{
for(;;)//可以代替while(1)
{
//語句1;
//語句2;
}
}
(2)第一個表達式為空
for(;i<=100;i++)sum=sum+i;
以上for循環(huán)中表達式1無,i不做初始值設置,i的值取決于該程序前面對i的處理
(3)第二個表示為空
for(i=1;;i++)sum=sum+i;
以上程序表達式2為空,不判斷條件,那么該循環(huán)也是死循環(huán)。相當于:
i=1;
while(1)
{
sum=sum+i;
i++;
}
(4)表達式1和表達式3為空
for(;i<=10;)
{
num=num+i;
i++;
}
以上for循環(huán)中,表達式1和3為空,相當于
while(i<=10)
{
num=num+i;
i++;
}
(5) for循環(huán)中沒有執(zhí)行語句(循環(huán)體)
for(i=0;i<8;i++)
{
;
}
以上for循環(huán)中無循環(huán)體,起到延時的作用,也可以簡寫為,
for(i=0;i<8;i++);
評論