C 語(yǔ)言中的 while 循環(huán)
while 循環(huán)語(yǔ)句是 C 語(yǔ)言中最常用的三種循環(huán)語(yǔ)句之一。很多時(shí)候我們會(huì)使用這種循環(huán)來(lái)處理無(wú)窮無(wú)盡的各種請(qǐng)求和響應(yīng)。
1. While 循環(huán)的語(yǔ)法
while( 循環(huán)條件 )
{
// 可以執(zhí)行的語(yǔ)句
}
2. While 循環(huán)的執(zhí)行過(guò)程
3. While 循環(huán)的使用場(chǎng)景
在程序中,需要將特定語(yǔ)句部分在滿(mǎn)足循環(huán)條件的情況下循環(huán)執(zhí)行的時(shí)候使用這個(gè)語(yǔ)句。這個(gè)循環(huán)在很多情況下就如同我們?cè)谕瓿勺约旱淖鳂I(yè)。我們每天的作業(yè)數(shù)量是不同的,沒(méi)有辦法進(jìn)行設(shè)定每天定量要寫(xiě)多少。但是,我們知道一條準(zhǔn)則,就是如果沒(méi)有寫(xiě)完,那就要一直寫(xiě)下去,直到寫(xiě)完為止。這里的循環(huán)判斷條件就是作業(yè)沒(méi)有寫(xiě)完。那么這個(gè)就是一個(gè) while 循環(huán)。每次都會(huì)檢查一個(gè)條件,如果條件滿(mǎn)足,那么就一直循環(huán)下去。
4. While 循環(huán)的使用實(shí)例
#include <stdio.h>
int main()
{
int x = 10;
while(x>0)
{
printf("Number: %d\n",x);
x--;
}
return 0;
}
運(yùn)行結(jié)果如下:
Number: 10
Number: 9
Number: 8
Number: 7
Number: 6
Number: 5
Number: 4
Number: 3
Number: 2
Number: 1
這個(gè)程序中,首先給 x 變量賦值為 10,在 while 條件中判斷 x 是否大于 0 。如果 x 大于 0 ,則執(zhí)行循環(huán)體中的語(yǔ)句。循環(huán)體中首先是輸出當(dāng)前的 x 值,然后將 x 減去 1 。然后再次判斷 x 是否大于 0 ,如果條件滿(mǎn)足則再次執(zhí)行,條件不滿(mǎn)足則循環(huán)程序執(zhí)行結(jié)束,繼續(xù)向下執(zhí)行。
5. 小結(jié)
while 語(yǔ)句是先進(jìn)行條件判斷,然后再?zèng)Q定是不是要執(zhí)行被括號(hào)包圍的循環(huán)體中的內(nèi)容是不是要被執(zhí)行。如果循環(huán)條件滿(mǎn)足則執(zhí)行執(zhí)行程序循環(huán)體中的內(nèi)容。如果不滿(mǎn)足則不執(zhí)行循環(huán)。這也就是說(shuō),如果在第一次判斷循環(huán)條件是否滿(mǎn)足的時(shí)候,如果判斷結(jié)果是不滿(mǎn)足,那么包括在循環(huán)語(yǔ)句中的內(nèi)容就一次也不會(huì)被執(zhí)行,直接會(huì)被忽略。
Tips:這個(gè)語(yǔ)句有時(shí)候會(huì)有一個(gè)特別的用途,就是在寫(xiě)單片機(jī)程序的時(shí)候,你有時(shí)候需要采用輪詢(xún)的方式來(lái)采集端口的信息,也就是需要不斷的掃描每個(gè)端口的狀態(tài)。這個(gè)時(shí)候,程序會(huì)使用 while(1) 來(lái)進(jìn)行。這個(gè)語(yǔ)句其實(shí)是一個(gè)不會(huì)停止的循環(huán)。程序會(huì)反復(fù)不斷的來(lái)執(zhí)行程序循環(huán)體中的內(nèi)容。