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