第3章+流程控制_第1頁(yè)
第3章+流程控制_第2頁(yè)
第3章+流程控制_第3頁(yè)
第3章+流程控制_第4頁(yè)
第3章+流程控制_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章流程控制程序的運(yùn)行流程選擇結(jié)構(gòu)語(yǔ)句循環(huán)結(jié)構(gòu)語(yǔ)句2.1程序的運(yùn)行圖2.2順序結(jié)構(gòu)語(yǔ)句2.3選擇結(jié)構(gòu)語(yǔ)句2.4循環(huán)結(jié)構(gòu)語(yǔ)句2.5本章小結(jié)3.1程序的運(yùn)行流程圖

流程圖是描述問題處理步驟的一種常用圖形工具,它是由一些圖框和流程線組成的。使用流程圖描述問題的處理步驟,形象直觀,便于閱讀。畫流程圖時(shí)必須按照功能選用相應(yīng)的流程圖符號(hào),常用的流程圖符號(hào)如圖3-1所示:

圖3-1流程圖符號(hào)3.1程序的運(yùn)行流程圖

圖3-1所示的流程圖符號(hào)中,列舉了四個(gè)圖框、一個(gè)流程線和一個(gè)連接點(diǎn),具體說明如下:起止框用于表示流程的開始或結(jié)束;輸入/輸出框用平行四邊形表示,在平行四邊形內(nèi)可以寫明輸入或輸出的內(nèi)容;判斷框用菱形表示,它的作用是對(duì)條件進(jìn)行判斷,根據(jù)條件是否成立來決定如何執(zhí)行后續(xù)的操作;處理框用矩形表示,它代表程序中的處理功能,如算術(shù)運(yùn)算和賦值等;

3.1程序的運(yùn)行流程圖流程線用實(shí)心單向箭頭或直線表示,可以連接不同位置的圖框,流程

線的標(biāo)準(zhǔn)流向是從左到右和從上到下,可用直線表示,非標(biāo)準(zhǔn)流向的流程線應(yīng)使用箭頭指示方向;連接點(diǎn)用圓形表示,用于流程圖的延續(xù);

學(xué)習(xí)畫流程圖可以有效的進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì),基本的流程結(jié)構(gòu)有3種,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。它們可以編寫各種復(fù)雜程序。在接下來的小節(jié)中,將分別講解這3種基本流程結(jié)構(gòu),而流程圖可以更好的理解和學(xué)習(xí)這些流程結(jié)構(gòu)語(yǔ)句。

3.2順序結(jié)構(gòu)語(yǔ)句程序中的所有語(yǔ)句都是從上到下逐條執(zhí)行,這樣的程序結(jié)構(gòu)稱為順序結(jié)構(gòu)。順序結(jié)構(gòu)是程序開發(fā)中最常見的一種結(jié)構(gòu),它可以包含多種語(yǔ)句,如變量的定義語(yǔ)句、輸入輸出語(yǔ)句、賦值語(yǔ)句等。下面來看一個(gè)順序結(jié)構(gòu)的簡(jiǎn)單例子,如例3-1所示:例3-1:

#include<stdio.h>voidmain(){ printf("我\n"); printf("愛\n"); printf("C\n"); printf("語(yǔ)\n"); printf("言\n");}3.2順序結(jié)構(gòu)語(yǔ)句運(yùn)行結(jié)果如圖3-2:

圖3-2運(yùn)行結(jié)果

在例3-1的程序中,使用了5個(gè)printf()語(yǔ)句,從上往下依次輸出字符“我、愛、C、語(yǔ)、言”。從運(yùn)行結(jié)果可以看出,程序是按照語(yǔ)句的先后順序依次執(zhí)行的,這樣的程序就是一個(gè)順序結(jié)構(gòu)的程序。

3.3選擇結(jié)構(gòu)語(yǔ)句3.3.1if條件語(yǔ)句if語(yǔ)句if語(yǔ)句是指如果滿足某種條件,就進(jìn)行相應(yīng)的處理。在C語(yǔ)言中,if語(yǔ)句的具體語(yǔ)法格式如下:

上述語(yǔ)法中,判斷條件的值只能是0或非0,若判斷條件的值為0,按“假”處理,若判斷條件的值為非0,按“真”處理,執(zhí)行{}中的語(yǔ)句。

if(判斷條件){

代碼塊}3.3選擇結(jié)構(gòu)語(yǔ)句if語(yǔ)句的執(zhí)行流程如圖3-3所示:

圖3-3if語(yǔ)句流程圖

3.3選擇結(jié)構(gòu)語(yǔ)句通過一個(gè)案例來學(xué)習(xí)if語(yǔ)句的具體用法,如例3-2所示:例3-2:

#include<stdio.h>voidmain(){ //聲明變量x intx=5; //如果x的值小于10則執(zhí)行if大括號(hào)中的代碼 if(x<10) { x++; } printf("x=%d\n",x);}3.3選擇結(jié)構(gòu)語(yǔ)句運(yùn)行結(jié)果如圖3-4:

圖3-4運(yùn)行結(jié)果

在if語(yǔ)句的判斷條件中判斷x的值是否小于10,很明顯條件成立,因此{(lán)}中的語(yǔ)句會(huì)被執(zhí)行,變量x的值將進(jìn)行自增。從圖3-4的運(yùn)行結(jié)果可以看出,x的值已由原來的5變成了6。

3.3選擇結(jié)構(gòu)語(yǔ)句3.3.1if條件語(yǔ)句if…else語(yǔ)句

if…else語(yǔ)句是指如果滿足某種條件,就進(jìn)行相應(yīng)的處理,否則就進(jìn)行另一種處理。if…else語(yǔ)句的具體語(yǔ)法格式如下:

if(判斷條件){

執(zhí)行語(yǔ)句1 ……}else{

執(zhí)行語(yǔ)句2 ……}3.3選擇結(jié)構(gòu)語(yǔ)句if…else語(yǔ)句的執(zhí)行流程如圖3-4所示:

圖3-3if…else語(yǔ)句流程圖

3.3選擇結(jié)構(gòu)語(yǔ)句例3-3通過一個(gè)實(shí)現(xiàn)奇偶數(shù)判斷來演示if…else語(yǔ)句的具體用法:

例3-3:

#include<stdio.h>voidmain(){ intnum=19; if(num%2==0) { //判斷條件成立,num被2整除 printf("num是一個(gè)偶數(shù)\n"); } else { printf("num是一個(gè)奇數(shù)\n"); }}3.3選擇結(jié)構(gòu)語(yǔ)句運(yùn)行結(jié)果如圖3-5所示:

圖3-5運(yùn)行結(jié)果

例3-3中,變量num的值為19,模以2的結(jié)果為1,不等于0,判斷條件不成立,因此程序會(huì)執(zhí)行else后面{}中的語(yǔ)句,打印“num是一個(gè)奇數(shù)”。

3.3選擇結(jié)構(gòu)語(yǔ)句3.3.1if條件語(yǔ)句if…elseif…else語(yǔ)句

if…elseif…else語(yǔ)句用于對(duì)多個(gè)條件進(jìn)行判斷,從而進(jìn)行多種不同的處理。if…elseif…else語(yǔ)句的具體語(yǔ)法格式如下:

if(判斷條件1){執(zhí)行語(yǔ)句1}elseif(判斷條件2){執(zhí)行語(yǔ)句2}……elseif(判斷條件n){執(zhí)行語(yǔ)句n}else{執(zhí)行語(yǔ)句n+1}3.3選擇結(jié)構(gòu)語(yǔ)句if…elseif…else語(yǔ)句的執(zhí)行流程如圖3-5所示:

圖3-5if…elseif…else語(yǔ)句流程圖

3.3選擇結(jié)構(gòu)語(yǔ)句

通過一個(gè)對(duì)學(xué)生考試成績(jī)進(jìn)行等級(jí)劃分的案例來演示if…elseif…else語(yǔ)句的用法,如例3-4所示:

運(yùn)行結(jié)果如圖3-6:

圖3-6運(yùn)行結(jié)果

例3-4中,定義了學(xué)生成績(jī)grade為75,由于它不滿足第一個(gè)判斷條件grade>=80,會(huì)執(zhí)行第二個(gè)判斷條件grade>=70,條件成立,因此會(huì)打印“該成績(jī)的等級(jí)為良”。

3.3選擇結(jié)構(gòu)語(yǔ)句例3-4:

#include<stdio.h>voidmain(){ intgrade=75;//定義學(xué)生成績(jī) if(grade>=80) { //滿足條件grade>=80 printf("該成績(jī)的等級(jí)為優(yōu)\n"); } elseif(grade>=70) { //不滿足條件grade>=80,但滿足條件grade>=70 printf("該成績(jī)的等級(jí)為良\n"); } elseif(grade>=60) { //不滿足條件grade>=70,但滿足條件grade>=60 printf("該成績(jī)的等級(jí)為中\(zhòng)n"); } else { //不滿足條件grade>=60 printf("該成績(jī)的等級(jí)為差\n"); }}

多學(xué)一招三元運(yùn)算符:

在C語(yǔ)言中有一種特殊的運(yùn)算叫做三元運(yùn)算,它和if…else語(yǔ)句類似具體語(yǔ)法格式如下:

三元運(yùn)算通常用于對(duì)某個(gè)變量進(jìn)行賦值,當(dāng)判斷條件成立時(shí),運(yùn)算結(jié)果為表達(dá)式1的值,否則結(jié)果為表達(dá)式2的值。如求x,y中最大值:

判斷條件?表達(dá)式1:表達(dá)式;intx=0;//if…else語(yǔ)句inty=1;intmax;if(x>y){ max=x;}else{ max=y;}//三元運(yùn)算intx=0;inty=1;intmax;max=x>y?x:y;3.3選擇結(jié)構(gòu)語(yǔ)句3.3.2switch條件語(yǔ)句switch條件語(yǔ)句也是一種很常用的選擇語(yǔ)句,和if條件語(yǔ)句不同,它只能針對(duì)某個(gè)表達(dá)式的值作出判斷,從而決定程序執(zhí)行哪一段代碼。例如,在程序中使用數(shù)字1~7來表示星期一到星期天,如果想根據(jù)某個(gè)輸入的數(shù)字來輸出對(duì)應(yīng)中文格式的星期值,可以通過下面的一段偽代碼來描述:

用于表示星期的數(shù)字

如果等于1,則輸出星期一

如果等于2,則輸出星期二

如果等于3,則輸出星期三

如果等于4,則輸出星期四

如果等于5,則輸出星期五

如果等于6,則輸出星期六

如果等于7,則輸出星期天

如果不是1~7,則輸出此數(shù)字為非法數(shù)字3.3選擇結(jié)構(gòu)語(yǔ)句

對(duì)于上面一段偽代碼的描述,大家可能會(huì)立刻想到用剛學(xué)過的if…elseif…else語(yǔ)句來實(shí)現(xiàn),但是由于判斷條件比較多,實(shí)現(xiàn)起來代碼過長(zhǎng),不便于閱讀。這時(shí)就可以使用C語(yǔ)言中的switch語(yǔ)句來實(shí)現(xiàn)這種需求。在switch語(yǔ)句中,switch關(guān)鍵字后面有一個(gè)表達(dá)式,case關(guān)鍵字后面有目標(biāo)值,當(dāng)表達(dá)式的值和某個(gè)目標(biāo)值匹配時(shí),會(huì)執(zhí)行對(duì)應(yīng)case下的語(yǔ)句。接下來通過一段偽代碼來描述switch語(yǔ)句的基本語(yǔ)法格式,具體如下:

3.3選擇結(jié)構(gòu)語(yǔ)句switch語(yǔ)句格式:

switch(表達(dá)式){ case目標(biāo)值1:

執(zhí)行語(yǔ)句1 break; case目標(biāo)值2:

執(zhí)行語(yǔ)句2 break; …… case目標(biāo)值n:

執(zhí)行語(yǔ)句n break; default:

執(zhí)行語(yǔ)句n+1 break;}3.3選擇結(jié)構(gòu)語(yǔ)句例3-5,用switch語(yǔ)句實(shí)現(xiàn)星期輸出:

#include<stdio.h>voidmain(){intweek=5; switch(week) {case1: printf("星期一"); break; case2: printf("星期二"); break; case3: printf("星期三"); break; case4: printf("星期四"); break; case5: printf("星期五"); break; case6: printf("星期六"); break; case7: printf("星期天"); break; default: printf("輸入的數(shù)字不正確..."); break;}}3.3選擇結(jié)構(gòu)語(yǔ)句例3-5輸出結(jié)果如圖3-7:

圖3-7運(yùn)行結(jié)果

由于變量week的值為5,整個(gè)switch語(yǔ)句判斷的結(jié)果滿足第19行的條件,因此打印“星期五”。程序中的default語(yǔ)句用于處理和前面的case都不匹配的情況,將第4行代碼替換為intweek=8,再次運(yùn)行程序,輸出結(jié)果如圖3-8所示:

圖3-8運(yùn)行結(jié)果

3.4循環(huán)結(jié)構(gòu)語(yǔ)句3.4.1while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句和3.3小節(jié)講到的條件判斷語(yǔ)句有些相似,都是根據(jù)判斷條件來決定是否執(zhí)行大括號(hào)內(nèi)的執(zhí)行語(yǔ)句。區(qū)別在于,while語(yǔ)句會(huì)反復(fù)地進(jìn)行條件判斷,只要條件成立,{}內(nèi)的執(zhí)行語(yǔ)句就會(huì)一直執(zhí)行下去,直到條件不成立,while循環(huán)才會(huì)結(jié)束。while循環(huán)語(yǔ)句的具體語(yǔ)法格式如下:

while(循環(huán)條件){

執(zhí)行語(yǔ)句………}3.4循環(huán)結(jié)構(gòu)語(yǔ)句while循環(huán)語(yǔ)句的執(zhí)行流程圖如圖3-8所示:

圖3-8while循環(huán)流程圖

3.4循環(huán)結(jié)構(gòu)語(yǔ)句

接下來通過while語(yǔ)句來實(shí)現(xiàn)1~4之間自然數(shù)的打印,如例3-6所示:例3-6:

#include<stdio.h>voidmain(){intx=1; //定義變量x,初始值為1while(x<=4)//循環(huán)條件{printf("x=%d\n",x);//條件成立,打印x的值x++;//x進(jìn)行自增}}3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-6運(yùn)行結(jié)果如圖3-9所示:

圖3-9運(yùn)行結(jié)果

例3-7中,x的初始值為1,在滿足循環(huán)條件x<=4的情況下,循環(huán)體會(huì)重復(fù)執(zhí)行,打印x的值并讓x進(jìn)行自增。因此,打印結(jié)果中x的值分別為1、2、3、4。需要注意的是,例3-7中的第8行代碼用于在每次循環(huán)時(shí)改變變量x的值,直到循環(huán)條件不成立,如果沒有這行代碼,整個(gè)循環(huán)會(huì)進(jìn)入無限循環(huán)的狀態(tài),永遠(yuǎn)不會(huì)結(jié)束。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句3.4.2do…while循環(huán)語(yǔ)句do…while循環(huán)語(yǔ)句和while循環(huán)語(yǔ)句功能類似,二者的不同之處在于,while語(yǔ)句需要先判斷循環(huán)條件,然后根據(jù)判斷結(jié)果來決定是否執(zhí)行大括號(hào)中的代碼,而do…while循環(huán)語(yǔ)句先要執(zhí)行一次大括號(hào)內(nèi)的代碼再判斷循環(huán)條件,其具體語(yǔ)法格式如下:

在上面的語(yǔ)法格式中,關(guān)鍵字do后面{}中的執(zhí)行語(yǔ)句是循環(huán)體。do…while循環(huán)語(yǔ)句將循環(huán)條件放在了循環(huán)體的后面。這也就意味著,循環(huán)體會(huì)無條件執(zhí)行一次,然后再根據(jù)循環(huán)條件來決定是否繼續(xù)執(zhí)行。do{執(zhí)行語(yǔ)句………}while(循環(huán)條件);3.4循環(huán)結(jié)構(gòu)語(yǔ)句do…while循環(huán)語(yǔ)句的執(zhí)行流程圖如圖3-10所示:

圖3-10do…while循環(huán)流程圖

3.4循環(huán)結(jié)構(gòu)語(yǔ)句

接下來使用do…while循環(huán)語(yǔ)句將例3-6進(jìn)行改寫,如例3-7所示:例3-7:

#include<stdio.h>voidmain(){intx=1; //定義變量x,初始值為1do{printf("x=%d\n",x);//條件成立,打印x的值x++;//x進(jìn)行自增}while(x<=4);//循環(huán)條件}3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-7運(yùn)行結(jié)果如圖3-11所示:

圖3-11運(yùn)行結(jié)果

例3-8和例3-7的運(yùn)行結(jié)果一致,這說明do…while循環(huán)和while循環(huán)能實(shí)現(xiàn)同樣的功能。然而在程序運(yùn)行過程中,這兩種語(yǔ)句還是有差別的。如果循環(huán)條件在循環(huán)語(yǔ)句開始時(shí)就不成立,那么while循環(huán)的循環(huán)體一次都不會(huì)執(zhí)行,而do…while循環(huán)的循環(huán)體還是會(huì)執(zhí)行一次。若將例中的循環(huán)條件x<=4改為x<1,例3-8會(huì)打印x=1,而例3-7什么也不會(huì)打印。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句3.4.3for循環(huán)語(yǔ)句

在前面的小節(jié)中分別講解了while循環(huán)和do…while循環(huán)。在程序開發(fā)中,還經(jīng)常會(huì)使用另一種循環(huán)語(yǔ)句,即for循環(huán),它通常用于循環(huán)次數(shù)已知的情況,其具體語(yǔ)法格式如下:

在上面的語(yǔ)法格式中,for關(guān)鍵字后面()中包括了初始化表達(dá)式、循環(huán)條件和操作表達(dá)式三部分內(nèi)容,它們之間用“;”分隔,{}中的執(zhí)行語(yǔ)句為循環(huán)體。for(初始化表達(dá)式;循環(huán)條件;操作表達(dá)式){

執(zhí)行語(yǔ)句 ………}3.4循環(huán)結(jié)構(gòu)語(yǔ)句

接下來分別用“①”表示初始化表達(dá)式、“②”表示循環(huán)條件、“③”表示操作表達(dá)式、“④”表示循環(huán)體,通過序號(hào)來具體分析for循環(huán)的執(zhí)行流程。具體如下:

第一步,執(zhí)行①;

第二步,執(zhí)行②,如果判斷條件的值非0,執(zhí)行第三步,如果判斷條件的值為0,執(zhí)行第五步;

第三步,執(zhí)行④;

第四步,執(zhí)行③,然后繼續(xù)執(zhí)行第二步;

第五步,退出循環(huán);

for(①;②;③){

④}3.4循環(huán)結(jié)構(gòu)語(yǔ)句

對(duì)自然數(shù)1~4求和,實(shí)現(xiàn)方式如例3-8所示:例3-8:

#include<stdio.h>voidmain(){intsum=0;//定義變量sum,用于記住累加的和for(inti=1;i<=4;i++)//i的值會(huì)在1~4之間變化{sum+=i;//實(shí)現(xiàn)sum與i的累加}printf("sum=%d\n",sum);//打印累加的和}3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-8運(yùn)行結(jié)果如圖3-12所示:

圖3-11運(yùn)行結(jié)果

例3-8中,變量i的初始值為1,在判斷條件i<=4為真的情況下,會(huì)執(zhí)行循環(huán)體sum+=i,執(zhí)行完畢后,會(huì)執(zhí)行操作表達(dá)式i++,i的值變?yōu)?,然后繼續(xù)進(jìn)行條件判斷,開始下一次循環(huán),直到i=5時(shí),條件i<=4為假,結(jié)束循環(huán),執(zhí)行for循環(huán)后面的代碼,打印“sum=10”。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句

為了讓讀者能熟悉整個(gè)for循環(huán)的執(zhí)行過程,現(xiàn)將例3-9運(yùn)行期間每次循環(huán)中變量sum和i的值通過表3-1列舉出來:

表3-1sum和i在循環(huán)中的值

循環(huán)次數(shù)sumi第一次11第二次32第三次63第四次1043.4循環(huán)結(jié)構(gòu)語(yǔ)句3.4.4循環(huán)嵌套

有時(shí)為了解決一個(gè)較為復(fù)雜的問題,需要在一個(gè)循環(huán)中再定義一個(gè)循環(huán),這樣的方式被稱作循環(huán)嵌套。在C語(yǔ)言中,while、do…while、for循環(huán)語(yǔ)句都可以進(jìn)行嵌套,并且它們之間也可以互相嵌套。for循環(huán)中嵌套是最常見的循環(huán)嵌套,其語(yǔ)法格式如下所示:

for(初始化表達(dá)式;循環(huán)條件;操作表達(dá)式){……for(初始化表達(dá)式;循環(huán)條件;操作表達(dá)式){

執(zhí)行語(yǔ)句; ……} ……}3.4循環(huán)結(jié)構(gòu)語(yǔ)句

接下來,通過for語(yǔ)句的循環(huán)嵌套來實(shí)現(xiàn)使用“*”打印直角三角形,如例3-10所示:

#include<stdio.h>voidmain(){inti,j;//定義兩個(gè)循環(huán)變量for(i=1;i<=9;i++)//外層循環(huán){for(j=1;j<=i;j++)//內(nèi)層循環(huán){ printf("*"); //打印*} printf("\n"); //換行}}3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-10運(yùn)行結(jié)果如圖3-12所示:

圖3-12運(yùn)行結(jié)果

3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-10運(yùn)行步驟解析:

第一步,在第4行代碼中定義了兩個(gè)循環(huán)變量i和j,其中i為外層循環(huán)變量,j為內(nèi)層循環(huán)變量;

第二步,在第5行代碼中將i初始化為1,條件i<=9為真,程序?qū)⑹状芜M(jìn)入外層循環(huán)的循環(huán)體;

第三步,在第7行代碼中將j初始化為1,由于此時(shí)i的值為1,條件j<=i為真,程序?qū)⑹状芜M(jìn)入內(nèi)層循環(huán)的循環(huán)體,打印一個(gè)“*”。

第四步,執(zhí)行第7行代碼中內(nèi)層循環(huán)的操作表達(dá)式j(luò)++,將j的值自增為2。

第五步,執(zhí)行第7行代碼中的判斷條件j<=i,判斷結(jié)果為假,內(nèi)層循環(huán)結(jié)束。執(zhí)行后面的代碼,打印換行符。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句

第六步,執(zhí)行第5行代碼中外層循環(huán)的操作表達(dá)式i++,將i的值自增為2。

第七步,執(zhí)行第5行代碼中的判斷條件i<=9,判斷結(jié)果為真,程序?qū)⑦M(jìn)入外層循環(huán)的循環(huán)體,繼續(xù)執(zhí)行內(nèi)層循環(huán)。

第八步,由于i的值為2,內(nèi)層循環(huán)會(huì)執(zhí)行兩次,即在第2行打印兩個(gè)“*”。在內(nèi)層循環(huán)結(jié)束時(shí)會(huì)打印換行符。

第九步,以此類推,在第3行會(huì)打印3個(gè)“*”,逐行遞增,直到i的值為10時(shí),外層循環(huán)的判斷條件i<=9結(jié)果為假,外層循環(huán)結(jié)束,整個(gè)程序也就結(jié)束了。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句3.4.5跳轉(zhuǎn)語(yǔ)句

跳轉(zhuǎn)語(yǔ)句用于實(shí)現(xiàn)循環(huán)執(zhí)行過程中程序流程的跳轉(zhuǎn),在C語(yǔ)言中,跳轉(zhuǎn)語(yǔ)句有break語(yǔ)句、goto語(yǔ)句和continue語(yǔ)句。break

在switch條件語(yǔ)句和循環(huán)語(yǔ)句中都可以使用break語(yǔ)句。當(dāng)它出現(xiàn)在switch條件語(yǔ)句中時(shí),作用是終止某個(gè)case并跳出switch結(jié)構(gòu)。當(dāng)它出現(xiàn)在循環(huán)語(yǔ)句中,作用是跳出當(dāng)前循環(huán)語(yǔ)句,執(zhí)行后面的代碼。接下來通過一個(gè)具體的案例來演示break語(yǔ)句如何跳出當(dāng)前循環(huán)。

如例3-11所示:

3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-11:

#include<stdio.h>voidmain(){intx=1;//定義變量x,初始值為1while(x<=4)//循環(huán)條件{printf("x=%d\n",x);//條件成立,打印x的值if(x==3){ break;} x++;//x進(jìn)行自增}}3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-11運(yùn)行結(jié)果如圖3-13:

圖3-13運(yùn)行結(jié)果

例3-11中,通過while循環(huán)打印x的值,當(dāng)x的值為3時(shí)使用break語(yǔ)句跳出循環(huán)。因此打印結(jié)果中并沒有出現(xiàn)“x=4”。

3.4循環(huán)結(jié)構(gòu)語(yǔ)句goto語(yǔ)句

當(dāng)break語(yǔ)句出現(xiàn)在嵌套循環(huán)中的內(nèi)層循環(huán)時(shí),它只能跳出內(nèi)層循環(huán),如果想要跳出外層循環(huán)則需要對(duì)外層循環(huán)添加標(biāo)記,然后使用goto語(yǔ)句。接下來通過一個(gè)案例來演示如何使用goto語(yǔ)句。

如例3-12所示:

3.4循環(huán)結(jié)構(gòu)語(yǔ)句例3-12:

#include<stdio.h>voidmain(){inti,j;//定義兩個(gè)循環(huán)變量for(i=1;i<=9;i++)//外層循環(huán){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論