鄭英姿
【摘 要】C語言中的循環(huán)語句有三種:while,do...while,for;for語句使用最為靈活,它完全可以取代while語句,本文針對簡單、嵌套for語句,講述它的語法格式、執(zhí)行過程及應(yīng)用。
【關(guān)鍵詞】for語句格式;for語句應(yīng)用;算法分析;程序
一、引用
在C語言中for循環(huán)語句的使用最為靈活,不僅可以用于循環(huán)次數(shù)確定,而且可以用于循環(huán)次數(shù)不確定的情況,合理的使用for循環(huán)語句可以使程序代碼大大簡化。如何使用for循環(huán)語句來實現(xiàn)循環(huán)結(jié)構(gòu)程序設(shè)計,解決實際問題,是我們說明的重點。
二、for語句格式
for(表達式1;表達式2;表達式3)循環(huán)體語句;
表達式1為循環(huán)變量賦初值;表達式2為循環(huán)條件;表達式3為修改循環(huán)變量。
執(zhí)行過程:首先計算<表達式1>,然后判斷<表達式2>的值,若其值為非零,執(zhí)行循環(huán)體,然后轉(zhuǎn)③,若<表達式2>的值為零,則結(jié)束循環(huán),轉(zhuǎn)至④。③求解<表達式3>,轉(zhuǎn)②執(zhí)行。④執(zhí)行for語句的下一條語句。
三、for語句的幾種形式
1、表達式1可以省略,此時應(yīng)在for語句之前給循環(huán)變量賦初值,并且分號不能省略。2、省略表達式2,則認(rèn)為循環(huán)條件始終為真,程序?qū)⑾萑胨姥h(huán)。3、表達式3可省略,此時應(yīng)在循環(huán)體內(nèi)對循環(huán)變量進行修改,以保證循環(huán)能正常結(jié)束。4、三個表達式都省略,此時應(yīng)在循環(huán)體內(nèi)對循環(huán)變量進行修改,用break語句終止循環(huán)。5、表達式1、3都可以有一項或多項,若有多項則使用逗號表達式。
四、for語句的應(yīng)用
1、簡單for循環(huán)語句的應(yīng)用
例:猴子吃桃子的問題:有一天,小猴摘下了若干個桃子,當(dāng)即吃掉了一般,還不過癮,又多吃了一個;第二天接著吃了剩下的桃子的一半后又多吃了一個;以后每天都吃尚存桃子的一半零一個,到第10天早上要吃時只剩下一個了。問小猴第一天共摘了多少個桃子?
算法分析:已知第10,桃子的個數(shù)是1;第i=9;桃子的個數(shù)x=(1+1)×2=4;第i=8;桃子的個數(shù)x=(4+1)×2=10;.................第i=1;桃子的個數(shù)x=(x+1)×2;當(dāng)i=1~9執(zhí)行循環(huán)體x=(x+1),執(zhí)行循環(huán)體9次,得到第一天的桃子數(shù)。
程序如下:
#include"stdio.h"
main()
{
inti,x;
x=1;
for(i=9;i>=1;i--)
{
x=(x+1)*2;
printf("i=%2d,x=%d\n",i,x);
}
}
2、for循環(huán)嵌套的應(yīng)用
在一個循環(huán)體內(nèi)又包含有一個或多個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán)即為多重循環(huán)。執(zhí)行過程是外層循環(huán)變量改變一次,內(nèi)層循環(huán)完成一次完整的循環(huán)。
例:打印九九乘法表。
分析:需要兩個循環(huán)變量i,j;利用兩個for循環(huán)語句嵌套實現(xiàn),i為外層循環(huán)變量,j為內(nèi)層循環(huán)的變量,i=1時,j=1,i=2時,j=1~i的值.......
程序如下:
#include
voidmain()
{
inti,j;
for(i=1;i<9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
3、多重for循環(huán)的應(yīng)用
例:百馬百瓦問題。有100匹馬,馱100塊瓦,大馬馱3塊,小馬馱2塊,兩個馬駒馱1塊。問大馬、小馬、馬駒各多少?編程列出所有可能的馱瓦方案。
算法分析:設(shè)大馬、小馬、馬駒各有x只、y只、z只,根據(jù)題目要求,可以用下列圖1方程表示,x的取值范圍為1~33,y的取值范圍為1~50,z的取值范圍為2~98。
程序如下:
#include