C語言 while循環(huán)語句
1.while循環(huán)的一般形式
while循環(huán)語句的特點是先判斷表達式,后執(zhí)行循環(huán)體,其一般形式如下:
while(表達式)
{
循環(huán)語句
}
又分為以下兩種情況:
①表達式為循環(huán)控制條件,一般是關系表達式或邏輯表達式的形式,例如:
i<=100
i>=0 && i<-100
循環(huán)控制條件也可以是任意合法的C語言表達式,例如:
while (1)
也是合法的。但注意盡量不要這樣用,因為可能導致死循環(huán)。
②循環(huán)語句可以是一條簡單語句,也可以是多條語句,如果是一個以上的語句,必須用花括號括起來,以復合語句的形式出現(xiàn)。
例如:
i=l;
while (i<-100)
putchar ('*');
i++;
程序的原意是想輸出100個'*',但由于循環(huán)體沒有使用花括號括起來,所以導致系統(tǒng)認為只有“putchar('*');”這一條語句是循環(huán)語句,i++;不屬于循環(huán)體,所以i的值總是為1。那么i永遠小于等于100,所以這個循環(huán)將永遠不結束,是一個死循環(huán)。
循環(huán)語句也可以是空語句,例如:
while (i<10);
循環(huán)體中的空語句可以表示循環(huán)不做任何操作,可能只為了消耗CPU的計算時間,也有可能是為了占位暫時使用空語句的形式。
2.while語句的執(zhí)行過程
while的執(zhí)行過程為:計算表達式的值,如果表達式的值為非0,則進入循環(huán),執(zhí)行循環(huán)語句,執(zhí)行完循環(huán)語句后轉到循環(huán)語句開始處,再次判斷表達式的值,如果仍為非0,繼續(xù)執(zhí)行循環(huán)體,直到循環(huán)表達式的值為0,退出循環(huán)。
具體執(zhí)行流程如圖所示。
關于while循環(huán)有以下四點需要注意。
①循環(huán)體有可能一次也不執(zhí)行,例如:
int i=15;
while(i<10)
{
printf("%d",i);
i++;
}
程序中,循環(huán)條件為K10,當i小于10時,進入循環(huán),而i的初值為15,從一開始就不符合進入循環(huán)的條件,所以循環(huán)體一次也不執(zhí)行。
②循環(huán)在下列情況將退出循環(huán)。
條件表達式不成立(為0)時。
在循環(huán)體中遇到break、return等語句時。
③避免出現(xiàn)無限循環(huán),又叫死循環(huán),例如:
while (1)
i++;
程序中,條件表達式永遠為1,所以循環(huán)永遠不會結束。
i=15;
while(i>10)
{
i++;
printf ("%d",i);
}
這個程序中,i的初值為15,當進入循環(huán)后,執(zhí)行i++,i的值是不斷增大的,所以循環(huán)條件i>10永遠成立,循環(huán)一直執(zhí)行,構成了死循環(huán)
④為了避免出現(xiàn)死循環(huán),循環(huán)體中應該有使循環(huán)趨近于結束的語句。例如:
int i=l;
while (i<=10)
{
printf("%d",i);
i++;
}
程序的功能是輸出1-10之間的整數(shù),本程序中i的初值為1,符合i<=10條件,循環(huán)體中的i++;語句,能使i的值不斷增大,執(zhí)行10次后將使i的值變?yōu)?1,不再符合i<=10條件,退出循環(huán)。
點擊加載更多評論>>