3.4 循環(huán)結(jié)構(gòu)
1for語(yǔ)句
for語(yǔ)句是C+ +中最常用且功能最強(qiáng)的循環(huán)語(yǔ)句,其語(yǔ)法格式如下:
for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>)
<語(yǔ)句>
其中,for為關(guān)鍵字;<表達(dá)式1>是for循環(huán)的初始化部分,它一般用來設(shè)置循環(huán)控制變量的初始值;<表達(dá)式2>是for循環(huán)的條件部分,它是用來判定循環(huán)是否繼續(xù)進(jìn)行的條件;<表達(dá)式3>是for循環(huán)的增量部分,它一般用于修改循環(huán)控制變量的值;<語(yǔ)句>稱為for循環(huán)的循環(huán)體,它是要被重復(fù)執(zhí)行的代碼行,for循環(huán)體可以是單條語(yǔ)句,也可以是由花括號(hào)包圍起來的復(fù)合語(yǔ)句。
for語(yǔ)句的執(zhí)行過程是:
(1)計(jì)算<表達(dá)式1>的值;
(2)計(jì)算<表達(dá)式2>的值,如果此值不等于0(即循環(huán)條件為“真”),則轉(zhuǎn)向步驟(3);如果此值等于0(即循環(huán)條件為“假”),則轉(zhuǎn)向步驟(5);
(3)執(zhí)行一遍循環(huán)體<語(yǔ)句>:
(4)計(jì)算<表達(dá)式3>的值,然后轉(zhuǎn)向步驟(2);
(5)結(jié)束for循環(huán)。
C+ +中for語(yǔ)句的書寫格式非常靈活,這主要表現(xiàn)為:
(1)<表達(dá)式1>可以是變量聲明語(yǔ)句,即循環(huán)控制變量可在其中定義。
(2)<表達(dá)式1>可以省略。這時(shí),應(yīng)在for語(yǔ)句之前給循環(huán)控制變量賦初始值。注意:省略<表達(dá)式1>時(shí),其后的分號(hào)不能省略。
(3)<表達(dá)式2>可以省略。這時(shí),for語(yǔ)句將不再判斷循環(huán)條件,循環(huán)會(huì)無限次地執(zhí)行下去。這種情況通常稱為“死循環(huán)”。
(4)<表達(dá)式3>可以省略。這時(shí),應(yīng)在循環(huán)中對(duì)循環(huán)控制變量進(jìn)行遞增或遞減操作,以確保循環(huán)能夠正常結(jié)束。
(5)三個(gè)表達(dá)式可同時(shí)省略。這時(shí),for語(yǔ)句顯然也是一個(gè)“死循環(huán)”。
(6)<表達(dá)式1>、<表達(dá)式2>和<表達(dá)式3>都可以是任何類型的C+ +表達(dá)式。
2while語(yǔ)句
while語(yǔ)句是一種形式較為簡(jiǎn)單的循環(huán)語(yǔ)句,其語(yǔ)法格式如下:
while(<表達(dá)式>)<語(yǔ)句>其中,while為關(guān)鍵字:<表達(dá)式>是while循環(huán)的條件,它用于控制循環(huán)是否繼續(xù)進(jìn)行;<語(yǔ)句>稱為while循環(huán)的循環(huán)體,它是要被重復(fù)執(zhí)行的代碼行;while循環(huán)體可以是單條語(yǔ)句,也可以是由花括號(hào)括起來的復(fù)合語(yǔ)句。實(shí)際上,while語(yǔ)句是for語(yǔ)句省略掉表達(dá)式1和表達(dá)式3的特殊情況。
while語(yǔ)句的執(zhí)行過程是:
(1)計(jì)算<表達(dá)式>的值,如果此值不等于0(即循環(huán)條件為“真”),則轉(zhuǎn)向步驟(2);如果此值等于0(即循環(huán)條件為“假”),則轉(zhuǎn)向步驟(4);
(2)執(zhí)行一遍循環(huán)體<語(yǔ)句>;
(3)轉(zhuǎn)向步驟(1);
(4)結(jié)束while循環(huán)。
從中可以看出,while語(yǔ)句將在<表達(dá)式>成立的情況下重復(fù)執(zhí)行<語(yǔ)句>;如果在第一次進(jìn)入while循環(huán)時(shí)<表達(dá)式>就不成立,則<語(yǔ)句>一次也不會(huì)執(zhí)行。
注意:
(1)由于while語(yǔ)句中缺少對(duì)循環(huán)控制變量進(jìn)行初始化的結(jié)構(gòu),因此在使用while循環(huán)之前對(duì)循環(huán)控制變量進(jìn)行初始化顯得很重要。
(2)在while循環(huán)體中不要忘記對(duì)循環(huán)控制變量的值進(jìn)行修改,以使循環(huán)趨向結(jié)束。
3do…while語(yǔ)句; do…while語(yǔ)句也是一種循環(huán)語(yǔ)句,它的功能類似于while語(yǔ)句,只是將循環(huán)的判定條件移到了循環(huán)體之后,其語(yǔ)法格式如下:
do<語(yǔ)句>while(<表達(dá)式>);
其中,do和while為關(guān)鍵字;<語(yǔ)句>稱為do…while循環(huán)的循環(huán)體,它是要被重復(fù)執(zhí)行的代碼行,do……while循環(huán)體可以是單條語(yǔ)句,也可以是由花括號(hào)包圍起來的復(fù)合語(yǔ)句;<表達(dá)式>是do……while循環(huán)的條件,它用于控制循環(huán)是否繼續(xù)進(jìn)行。
注意:在do…while語(yǔ)句中最后的分號(hào)不能丟掉,它用來表示do……while語(yǔ)句的結(jié)束。
do……while語(yǔ)句的執(zhí)行過程是:
(1)執(zhí)行一遍循環(huán)體<語(yǔ)句>;
(2)計(jì)算<表達(dá)式>的值,如果此值不等于0(即循環(huán)條件為“真”),則轉(zhuǎn)向步驟(1);如果此值等于0(即循環(huán)條件為“假”),則轉(zhuǎn)向步驟(3);
(3)結(jié)束do…while循環(huán)。
注意:
(1)在使用do…while循環(huán)之前同樣需要對(duì)循環(huán)控制變量進(jìn)行初始化;在do…while循環(huán)中仍然不要忘記對(duì)循環(huán)控制變量進(jìn)行修改,以使循環(huán)趨向結(jié)束,避免死循環(huán)的發(fā)生。
(2)do…while循環(huán)與while循環(huán)的不同之處在于:do…while循環(huán)的循環(huán)體在前,循環(huán)條件在后,因此do…while循環(huán)體在任何條件下(即使不滿足循環(huán)條件)都至少被執(zhí)行一次。而while循環(huán)條件在前,循環(huán)體在后,當(dāng)條件不滿足時(shí),循環(huán)體有可能一次也不會(huì)執(zhí)行。這一點(diǎn)正是在構(gòu)造循環(huán)結(jié)構(gòu)時(shí)決定使用while語(yǔ)句還是do…while語(yǔ)句的重要依據(jù)。
循環(huán)的嵌套
在一個(gè)循環(huán)結(jié)構(gòu)中又完整地包含著另一個(gè)循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套。C+ +中三種類型的循環(huán)語(yǔ)句都可以相互嵌套,并且嵌套的層數(shù)沒有限制。程序設(shè)計(jì)中有許多問題需要使用循環(huán)結(jié)構(gòu)的嵌套來解決。
編輯推薦:
2014年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間預(yù)告
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |