C語言 for語句
1.for循環(huán)的一般形式
for循環(huán)的一般形式如下:
f or (表達式1:表達式2:表達3)
循環(huán)語句
說明如下:
①表達式1:通常是給循環(huán)變量賦初值,一般是一個賦值表達式。
②表達式2:通常是循環(huán)條件,是用來判斷循環(huán)是否繼續(xù)執(zhí)行的關(guān)系表達式或邏輯表達式。這個表達式通常與某一個(或多個)變量的值有關(guān),隨著這個(些)變量值的改變,表達式的結(jié)果發(fā)生變化,由此來達到循環(huán)條件趨近于0,從而退出循環(huán)。這個(些)變置一般被稱為循環(huán)變量。
③表達式3:通??捎脕硇薷难h(huán)變量的值,一般是賦值語句,可將表達式3稱為循環(huán)步長。
④循環(huán)語句可以是一條語句,也可以是多條語句,如果是多條語句,要使用復(fù)合語句的形式。
2. for循環(huán)的執(zhí)行過程
①計算表達式1,通常用于循環(huán)開始前對循環(huán)變量設(shè)置初值。
②計算表達式2,值為0則結(jié)束循環(huán),否則執(zhí)行第3步。
③執(zhí)行循環(huán)語句。
④計算表達式3,返回第2步。 for語句的執(zhí)行流程如圖所示。
從執(zhí)行流程圖中可以看出,整個for循環(huán)過程中,表達式1只計算一次,表達式2和表達式3則可能計算多次。如果開始表達式2的值就為0的話,循環(huán)可以一次也不執(zhí)行。例如:
for(i—10; i<5; i++)
printf("%d",i);
程序中,先將賦值為10,之后判斷表達式2: i<5表達式不成立,所以循環(huán)一次也不執(zhí)行。
在某些情況下,for語句中的表達式1、表達式2、表達式3都可以省略,而改用其他的方式來實現(xiàn)這些功能。例如:輸出1~20之間的整數(shù)。
①正常的程序為:
int i;
for (i-1;i<=20;i++)
printf("%d",i);
②省略表達式1的情況:
int i-1; /*定義變量i并初始化,相當于表達式1的功能*/
for(;i<=20;i++) /*此處表達式1省略,但分號“;”不可以省略*/
printf ("%d ",i);
③省略表達式2:
for(i=l;;i++)
{
if(i〈一20)
printf ("%d ",i);
else
break; /*使用break終止循環(huán)*/
}
此時for語句沒有設(shè)定循環(huán)結(jié)束條件,等效于while(1)語句。如果循環(huán)體中沒有相應(yīng)的控制循環(huán)退出的手段,則造成死循環(huán)。
break語句用在循環(huán)體內(nèi),可以終止循環(huán)。具體用法將在后面介紹。
④省略表達式3:
for(i=l;i<-20;)
/*省略的表達式3放在了循環(huán)體中,分號“;”同樣不可省略*/
{
printf("%d ",i);
i++;
}
這里需要注意,不要寫成如下形式:
for(i=l;i<=20;i++)
{
printf ("%d ",i);
i++;
}
這樣寫相當于i++;執(zhí)行了兩次,那么輸出的就是1?20之間的奇數(shù)了。
⑤也可以表達式1、2、3全部省略,則程序可寫成如下形式:
int i=l; /*起到表達式1的作用*/
for(;;)
{
if(i<-20) /*起到表達式2的作用*/
printf ("%d
else
break;
i++; /*起到表達式3的作用*/
}
3.循環(huán)程序設(shè)計思路
實際編程時,不管是用for、while、do-while三種語句中的哪種語句來實現(xiàn)循環(huán),在分析問題是否使用循環(huán)來實現(xiàn)的時候,需要考慮以下幾個問題:
①輸入是什么?用來確定原始值。
②輸出是什么?確定應(yīng)該輸出的結(jié)果。
③從輸入轉(zhuǎn)換為輸出需要怎樣的步驟,是否需要重復(fù)。(確定是否需要使用循環(huán)語句,及循環(huán)語句的內(nèi)容)
④如需重復(fù),能否提前預(yù)知重復(fù)的次數(shù)?以便用來確定使用while、do-while, for哪種循環(huán)語句。
⑤何時不再需要重復(fù)?以便用來確定循環(huán)條件,及循環(huán)體中使循環(huán)條件趨近于0的語句。
4.三種循環(huán)的比較
所有需要用到循環(huán)結(jié)構(gòu)的程序,都可以用for、while、do-while中的任何一個來實現(xiàn),區(qū)別只在于某些問題用哪種語句更方便。
?對于已知執(zhí)行次數(shù)的循環(huán)使用fo「循環(huán)更加方便;
?循環(huán)次數(shù)未知,而是需要使用根據(jù)某一條件來決定是否退出循環(huán)的,可以使用while循環(huán)或do-while 循環(huán)。do-while循環(huán)條件放在循環(huán)體之后,最少執(zhí)行一次循環(huán)體。
點擊加載更多評論>>