版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版建筑材料購(gòu)銷合同書模板
- 二零二五年度臺(tái)球室租賃及品牌形象合作合同3篇
- 2025購(gòu)銷合同常用文本
- 二零二五年度全新租賃房屋合同住宅押金退還管理協(xié)議3篇
- 2025年度全新出售房屋買賣貸款擔(dān)保合同3篇
- 2025年度年度全新高空纜車運(yùn)營(yíng)意外事故免責(zé)服務(wù)協(xié)議3篇
- 二零二五年度智慧社區(qū)建設(shè)與運(yùn)營(yíng)管理協(xié)議合同范文2篇
- 2025年農(nóng)村兄弟分家協(xié)議及遺產(chǎn)分配執(zhí)行方案
- 2025年度養(yǎng)殖場(chǎng)勞務(wù)合同(養(yǎng)殖場(chǎng)安全生產(chǎn)監(jiān)管)3篇
- 二零二五年度創(chuàng)業(yè)投資股權(quán)代持專項(xiàng)合同2篇
- 漢語(yǔ)教程我聽過鋼琴協(xié)奏曲黃河課件
- 二氧化碳充裝流程
- 12m跨鋼棧橋設(shè)計(jì)計(jì)算
- 電路板類英語(yǔ)詞匯
- DES算法Matlab代碼
- 沙特的礦產(chǎn)資源開發(fā)概況及其商機(jī)
- 高一生物必修一期末試題(附答案)
- 安全事故應(yīng)急響應(yīng)程序流程圖(共1頁(yè))
- 三年級(jí)_上冊(cè)牛津英語(yǔ)期末試卷
- 損傷容限設(shè)計(jì)基本概念原理和方法PPT課件
- 水壓式沼氣池設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論