《C語(yǔ)言程序設(shè)計(jì)》-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第章4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言主要提供了4種循環(huán)語(yǔ)句,包括while語(yǔ)句、do-while語(yǔ)句、for語(yǔ)句以及if和goto語(yǔ)句構(gòu)成的循環(huán)。雖然各循環(huán)語(yǔ)句的格式不同,關(guān)鍵字不同,對(duì)循環(huán)條件判斷的先后順序不同,循環(huán)次數(shù)是否固定也有所不同,但循環(huán)控制是它們的共同點(diǎn),都是由循環(huán)條件判斷和循環(huán)體兩部分組成,相互之間也可以進(jìn)行轉(zhuǎn)換?!?—4.1while循環(huán)4.2do-while循環(huán)4.3for循環(huán)目錄CONTENTS4.4循環(huán)嵌套4.5goto語(yǔ)句4.6其他循環(huán)控制語(yǔ)句PARTwhile循環(huán)4.14.1while循環(huán)while循環(huán)語(yǔ)句的一般形式為:while(表達(dá)式)語(yǔ)句;/*循環(huán)體*/while循環(huán)—5—4.1while循環(huán)圓括號(hào)內(nèi)的表達(dá)式是控制表達(dá)式,語(yǔ)句是循環(huán)體,循環(huán)體可以是一條簡(jiǎn)單的語(yǔ)句,也可以是多條語(yǔ)句組成的復(fù)合語(yǔ)句(用花括號(hào)括起來)。其執(zhí)行流程如右圖所示。語(yǔ)句表達(dá)式非00while循環(huán)語(yǔ)句的執(zhí)行流程—6—4.1while循環(huán)執(zhí)行該語(yǔ)句時(shí),先計(jì)算表達(dá)式的值,如果它為真,則執(zhí)行循環(huán)體;接著再次判定表達(dá)式的值,如果它仍為真,繼續(xù)執(zhí)行循環(huán)體,依此類推,直到表達(dá)式的值為假結(jié)束循環(huán),執(zhí)行while語(yǔ)句后的下一條語(yǔ)句?!?—4.1while循環(huán)【例4.1】計(jì)算從1到100的和。#include<stdio.h>intmain(){inti,sum;sum=0;i=1;while(i<=100){/*定義變量*//*賦初值*//*循環(huán),當(dāng)i>100時(shí)結(jié)束*/sum=sum+i;i=i+1;/*求和,將結(jié)果放入sum中*//*循環(huán)控制變量i加1*/}printf("1+2+3+...+99+100=%d",sum);return0;/*輸出sum的值*/}—8—4.1while循環(huán)程序運(yùn)行的結(jié)果為:1+2+3+…+99+100=5050(1)變量初始化描述要完整、準(zhǔn)確。(2)在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。注意—9—4.1while循環(huán)【例4.2】統(tǒng)計(jì)從鍵盤輸入一行字符的個(gè)數(shù)。#include<stdio.h>intmain(){intn=0;printf("inputastring:\n");while(getchar()!='\n')/*初始化變量n*//*輸出提示信息*//*循環(huán)輸入字符,當(dāng)輸入回車時(shí)結(jié)束*//*n自加1*//*輸出n的值*/n++;printf("%d",n);return0;}程序運(yùn)行的結(jié)果為:inputastring:abcdef6—10—4.1while循環(huán)【例4.3】輸出1~10中各個(gè)數(shù)的平方。#include<stdio.h>intmain(){intn=10;while(n){/*初始化變量*//*當(dāng)n不為0時(shí)循環(huán)*/printf("%d",n*n);n--;/*輸出n*n的值*//*n自減1*/}return0;}本例程序?qū)?zhí)行10次循環(huán),每執(zhí)行一次,n值減1。循環(huán)體輸出表達(dá)式n*n的值。程序運(yùn)行的結(jié)果為:100816449362516941—11—4.1while循環(huán)【例4.4】使用格里高利公式求π的近似值,要求精確到最后一項(xiàng)的絕對(duì)值小于10-4。提示格里高利公式求π:π/4=1-1/3+1/5-1/7+…#include<stdio.h>#include<math.h>intmain(){intdenominator=1,flag=1;doubleitem=1.0,pi=0;while(fabs(item)>=0.0001){/*初始化變量*//*當(dāng)精度大于0.0001時(shí)循環(huán)*/item=flag*1.0/denominator;pi=pi+item;flag=-flag;/*計(jì)算每一項(xiàng)*//*累加*//*取反*/—12—4.1while循環(huán)denominator=denominator+2;/*底數(shù)加2*/}pi=pi*4;printf("pi=%f\n",pi);return0;/*求pi的值*//*輸出pi的值*/}本例題while循環(huán)將計(jì)算精度作為循環(huán)執(zhí)行條件,用flag變量作為正負(fù)標(biāo)記。程序運(yùn)行的結(jié)果為:pi=3.141793—13—PARTdo-while循環(huán)4.24.2do-while循環(huán)do-while語(yǔ)句的一般形式為:do語(yǔ)句;/*循環(huán)體*/while(表達(dá)式);do-while循環(huán)—15—4.2do-while循環(huán)這個(gè)循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語(yǔ)句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句。其執(zhí)行過程如右圖所示。語(yǔ)句表達(dá)式非00do-while語(yǔ)句的執(zhí)行流程—16—4.2do-while循環(huán)【例4.5】求nn!123...。#include<stdio.h>intmain(){inti=1,s=1,n;printf("pleaseinputn:");scanf("%d",&n);do{/*定義及初始化變量*//*輸出提示語(yǔ)*//*輸入n的值*//*開始循環(huán)*/s=s*i;i++;/*計(jì)算階乘*//*i自加1*//*當(dāng)i<=n成立時(shí)循環(huán)*//*輸出*/}while(i<=n);printf("%d!=%d\n",n,s);return0;}—17—4.2do-while循環(huán)程序運(yùn)行的結(jié)果為:pleaseinputn:55!=120使用do-while循環(huán)語(yǔ)句時(shí),如果循環(huán)體中有多條語(yǔ)句,必須采用復(fù)合語(yǔ)句的形式。do-while語(yǔ)句中,條件放在while后面的圓括號(hào)中,并且最后必須加上一個(gè)分號(hào),這是很多初學(xué)者容易遺漏的。注意—18—4.2do-while循環(huán)while語(yǔ)句先進(jìn)行循環(huán)條件的判斷,再?zèng)Q定是否執(zhí)行循環(huán)體;do-while語(yǔ)句則先執(zhí)行一次循環(huán)體,再進(jìn)行循環(huán)條件的判斷決定是否繼續(xù)循環(huán)。do-while語(yǔ)句至少要執(zhí)行一次循環(huán)體,而while語(yǔ)句在第一次條件判斷不成立時(shí),則一次循環(huán)體都不執(zhí)行?!?9—4.2do-while循環(huán)因此,如果用這兩種語(yǔ)句描述同一個(gè)循環(huán)功能時(shí),當(dāng)?shù)谝淮闻袛嘌h(huán)條件表達(dá)式成立時(shí),兩種語(yǔ)句的執(zhí)行結(jié)果完全一致,只有在第一次判斷循環(huán)條件表達(dá)式不成立時(shí),二者的執(zhí)行結(jié)果才可能出現(xiàn)不同。因此,在編程時(shí),要注意do-while語(yǔ)句的至少執(zhí)行一次循環(huán)體的特點(diǎn)?!?0—4.2do-while循環(huán)【例4.6】統(tǒng)計(jì)一個(gè)整數(shù)的位數(shù)。#include<stdio.h>intmain(){intcount=0,number;printf("Enteranumber:");scanf("%d",&number);if(number<0)/*定義及初始化變量*//*輸出提示語(yǔ)*//*輸入整數(shù)*//*如果輸入的為負(fù)整數(shù)則取反*/number=-number;do{number=number/10;count++;/*number整除10,即去掉最低位*//*位數(shù)加1*//*number不為0時(shí)循環(huán)*//*輸出位數(shù)*/}while(number!=0);printf("Itcontains%ddigits.\n",count);return0;}—21—4.2do-while循環(huán)程序運(yùn)行的結(jié)果為:Enteranumber:456Itcontains3digits.—22—PARTfor循環(huán)4.34.3for循環(huán)在C語(yǔ)言中,除了可以用while和do-while語(yǔ)句實(shí)現(xiàn)循環(huán)外,還可以用for語(yǔ)句實(shí)現(xiàn)循環(huán)。其一般形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句;/*循環(huán)體*/for循環(huán)—24—4.3for循環(huán)for循環(huán)語(yǔ)句的執(zhí)行流程,如右圖所示。求解表達(dá)式11先求解表達(dá)式1。表達(dá)式202然后求解表達(dá)式2,若其值為真(非0),則執(zhí)行for語(yǔ)句中指定的循環(huán)語(yǔ)句,然后執(zhí)行第(3)步;若其值為假(0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步。非0語(yǔ)句3求解表達(dá)式3。求解表達(dá)式34返回到第(2)步繼續(xù)執(zhí)行。for語(yǔ)句的下一個(gè)語(yǔ)句5循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的語(yǔ)句。for循環(huán)語(yǔ)句的執(zhí)行流程—25—4.3for循環(huán)for語(yǔ)句將控制循環(huán)的主要操作集中在循環(huán)語(yǔ)句開頭的圓括號(hào)里。圓括號(hào)中的三個(gè)表達(dá)式的作用是:表達(dá)式1表達(dá)式2表達(dá)式3通常為關(guān)系表達(dá)式或邏輯表達(dá)式,用來判斷是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)。一般被稱為“步長(zhǎng)”環(huán)變量的修改,該表達(dá)式是在每次循環(huán)體執(zhí)行完以后、下一次循環(huán)條件判斷之前執(zhí)行的,使循環(huán)變量經(jīng)過多次循環(huán)的累積而發(fā)生改變,最終因?yàn)椴粷M足循環(huán)條件退出循環(huán)。,用于循通常為賦值表達(dá)式,實(shí)現(xiàn)循環(huán)控制變量的初始化,只執(zhí)行一次?!?6—4.3for循環(huán)【例4.7】編程計(jì)算1到49之內(nèi)的奇數(shù)和。#include<stdio.h>intmain(){intsum=0,n;for(n=1;n<=49;n+=2)/*定義及初始化變量*//*循環(huán),當(dāng)n>49時(shí)結(jié)束,步長(zhǎng)為2*//*累加*//*輸出結(jié)果*/sum=sum+n;printf("sum=%d",sum);return0;}程序運(yùn)行的結(jié)果為:sum=625—27—4.3for循環(huán)可將for循環(huán)語(yǔ)句改寫為如下的while循環(huán)形式:表達(dá)式1;while(表達(dá)式2){語(yǔ)句;表達(dá)式3;}例如:for(i=1;i<=100;i++)sum=sum+i;相當(dāng)于:i=1;while(i<=100){sum=sum+i;i++;}—28—4.3for循環(huán)因此,可以將例4.7用while語(yǔ)句進(jìn)行改寫如下:#include<stdio.h>intmain(){intsum=0,n;n=1;while(n<=49){/*定義及初始化變量*//*n的初值為1*//*循環(huán),當(dāng)n>49時(shí)結(jié)束*/sum=sum+n;n+=2;/*累加*//*步長(zhǎng)為2*/}printf("sum=%d",sum);return0;/*輸出結(jié)果*/}—29—4.3for循環(huán)使用for循環(huán)語(yǔ)句時(shí),我們必須注意以下幾個(gè)問題:for循環(huán)中的“表達(dá)式1”“表達(dá)式2”和“表達(dá)式3”都是可選項(xiàng),即可以缺省,但表達(dá)式之間的分號(hào)“;”絕對(duì)不能缺省。省略“表達(dá)式1”,表示不對(duì)循環(huán)控制變量賦初值。0102—30—4.3for循環(huán)例如:省略“表達(dá)式2”,表示不用判斷循環(huán)條件是否成立,循環(huán)條件總是滿足的,則如果不做其他處理,便成了死循環(huán)。for(i=1;;i++)sum=sum+i;相當(dāng)于:03i=1;while(1){sum=sum+i;i++;}—31—4.3for循環(huán)例如:省略“表達(dá)式3”,則不對(duì)循環(huán)控制變量進(jìn)行操作,這時(shí)可在循環(huán)體中加入修改循環(huán)控制變量的語(yǔ)句。for(i=1;i<=100;){04sum=sum+i;i++;}—32—4.3for循環(huán)例如:for(;;)05省略3個(gè)表達(dá)式。相當(dāng)于:while(1)—33—4.3for循環(huán)表達(dá)式1和表達(dá)式3可以是一個(gè)簡(jiǎn)單的表達(dá)式,也可以是逗號(hào)表達(dá)式,即包含一個(gè)以上的簡(jiǎn)單表達(dá)式,中間用逗號(hào)間隔。例如:06for(i=0,j=100;i<=100;i++,jk=i+j;--)—34—4.3for循環(huán)【例4.8】含有逗號(hào)表達(dá)式的for語(yǔ)句。#include<stdio.h>intmain(){inti,j;for(i=1,j=1;i<=10||j<30;i++,j+=4)/*定義變量*//*循環(huán)判斷*//*輸出i*j的值*/printf("%d",i*j);return0;}程序運(yùn)行的結(jié)果為:110275285126175232297370—35—4.3for循環(huán)表達(dá)式2一般是關(guān)系表達(dá)式或邏輯表達(dá)式,但也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值非零,就執(zhí)行循環(huán)體。07—36—4.3for循環(huán)【例4.9】將用戶輸入的字符全部顯示出來,直到用戶輸入回車為止。#include<stdio.h>intmain(){charc;for(;(c=getchar())!='\n';)/*定義變量*//*當(dāng)輸入不是回車時(shí)循環(huán)*/printf("%c",c);/*輸出字符c*/return0;}程序運(yùn)行的結(jié)果為:asdfghjkl,123asdfghjkl,123—37—PART循環(huán)嵌套4.44.4循環(huán)嵌套一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。嵌在循環(huán)體內(nèi)的循環(huán)稱為內(nèi)循環(huán),嵌有內(nèi)循環(huán)的循環(huán)稱為外循環(huán)。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)?!?9—2do-while循環(huán)number=number/10;循環(huán)體包括整個(gè)內(nèi)循環(huán)及退出內(nèi)循環(huán)后執(zhí)行2*1=22*2=4循環(huán)體包括整個(gè)內(nèi)循環(huán)及退出內(nèi)循環(huán)后執(zhí)行函數(shù)的內(nèi)容將會(huì)在第5章進(jìn)行介紹,在此對(duì)其簡(jiǎn)loop:if(i>=1)#include<stdio.很多初學(xué)者容易遺漏的。當(dāng)用戶輸入編號(hào)1~4時(shí),顯示相應(yīng)通常為關(guān)系表達(dá)式或邏輯通常為賦值表達(dá)式,實(shí)現(xiàn)輸入其他編號(hào),顯示價(jià)格為0。通常為賦值表達(dá)式,實(shí)現(xiàn)編程計(jì)算1到49之內(nèi)的奇數(shù)和。4.4循環(huán)嵌套【例4.10】打印九九乘法表。程序可用for循環(huán)的嵌套來實(shí)現(xiàn),用外循環(huán)控制被乘數(shù)i的變化,用內(nèi)循環(huán)控制乘數(shù)j的變化,內(nèi)循環(huán)的循環(huán)體計(jì)算i*j并輸出結(jié)果。外循環(huán)的循環(huán)體包括整個(gè)內(nèi)循環(huán)及退出內(nèi)循環(huán)后執(zhí)行的“printf("\n");”語(yǔ)句?!?0—4.4循環(huán)嵌套#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){/*定義變量*//*外循環(huán)控制被乘數(shù)*/for(j=1;j<=9;j++)/*內(nèi)循環(huán)控制乘數(shù)*//*輸出結(jié)果*//*結(jié)束一個(gè)內(nèi)循環(huán)后輸出一個(gè)回車*/printf("%d*%d=%d",i,j,i*j);printf("\n");}return0;}程序運(yùn)行的結(jié)果為:1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=18…9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81—41—4.4循環(huán)嵌套上述程序中,輸出了很多多余項(xiàng),可以通過修改程序去掉這些多余項(xiàng),具體代碼如下:#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){/*定義變量*//*外循環(huán)控制被乘數(shù)*/for(j=1;j<=i;j++)/*內(nèi)循環(huán)控制乘數(shù),乘數(shù)小于等于被乘數(shù)*/printf("%d*%d=%d",i,j,i*j);/*輸出結(jié)果*//*結(jié)束一個(gè)內(nèi)循環(huán)后輸出一個(gè)回車*/printf("\n");}return0;}—42—4.4循環(huán)嵌套程序執(zhí)行結(jié)果為:1*1=12*1=22*2=49*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81—43—4.4循環(huán)嵌套循環(huán)嵌套時(shí)應(yīng)注意以下問題:01020304or循環(huán)、while循環(huán)和do-while循環(huán)可以相互嵌套,無論如何嵌套,都必須滿足內(nèi)循環(huán)完整地包含在外循環(huán)中,不能形成循環(huán)的交叉。嵌套循環(huán)的層數(shù)沒有限制,但嵌套的層數(shù)太多,會(huì)消耗大量的內(nèi)存空間,程序的可讀性將變差。循環(huán)嵌套時(shí),內(nèi)外層循環(huán)不能使用相同的循環(huán)變量。為了使嵌套的層次關(guān)系清晰明了,易于閱讀和糾錯(cuò),建議采用縮進(jìn)格式書寫程序?!?4—PARTgoto語(yǔ)句4.54.5goto語(yǔ)句goto語(yǔ)句是無條件轉(zhuǎn)移語(yǔ)句,使用它可以使程序跳轉(zhuǎn)到函數(shù)中任何有標(biāo)號(hào)的語(yǔ)句處。標(biāo)號(hào)是放置在語(yǔ)句開始處的標(biāo)識(shí)符,并以一個(gè)冒號(hào)“:”作為后綴,其一般形式為:標(biāo)識(shí)符:語(yǔ)句;goto語(yǔ)句的一般形式為:goto標(biāo)識(shí)符;通常goto語(yǔ)句與if條件語(yǔ)句連用,當(dāng)滿足某一條件時(shí),程序跳到標(biāo)號(hào)處運(yùn)行?!?6—4.5goto語(yǔ)句【例4.11】用if語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán),求5!。#include<stdio.h>intmain(){inti=5,result=1;/*初始化變量*//*若i>=1求階乘*/loop:if(i>=1){result*=i;i--;gotoloop;/*求乘積*//*i自減1*//*轉(zhuǎn)向loop*/}printf("5!=%d\n",result);return0;/*輸出結(jié)果*/}—47—4.5goto語(yǔ)句程序運(yùn)行的結(jié)果為:5!=120(1)goto語(yǔ)句的跳轉(zhuǎn)只能在函數(shù)內(nèi)部,不能在不同的函數(shù)之間進(jìn)行。函數(shù)的內(nèi)容將會(huì)在第5章進(jìn)行介紹,在此對(duì)其簡(jiǎn)單了解即可。(2)goto語(yǔ)句在早期編程語(yǔ)言中很常見,但在現(xiàn)在的C語(yǔ)言編程中卻很少用到它了,這是因?yàn)樗拇罅渴褂脮?huì)破壞程序的結(jié)構(gòu)化,使程序的流程控制混亂,可讀性降低,調(diào)試?yán)щy。提示—48—PART其他循環(huán)控制語(yǔ)句4.64.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句在幾種循環(huán)結(jié)構(gòu)中,主要是在循環(huán)次數(shù)不能預(yù)先確定的情況下使用break語(yǔ)句,在循環(huán)體中增加一個(gè)分支結(jié)構(gòu),當(dāng)某個(gè)條件成立時(shí),由break語(yǔ)句退出循環(huán)體,從而結(jié)束循環(huán)過程。其一般形式為:break;—50—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句【例4.12】求300以內(nèi)能被19整除的最大數(shù)。#include<stdio.h>intmain(){intx;for(x=300;x>=1;x--)/*循環(huán)*/if(x%19==0)break;/*當(dāng)x能被19整除時(shí)跳出循環(huán)*//*輸出x的值*/printf("x=%d\n",x);return0;}在for語(yǔ)句中,當(dāng)x能被19整除時(shí),執(zhí)行語(yǔ)句“break;”結(jié)束for循環(huán)語(yǔ)句;否則,進(jìn)入下一次循環(huán)。程序運(yùn)行結(jié)果為:x=285—51—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句(1)break語(yǔ)句不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的其他語(yǔ)句。提示(2)在多重循環(huán)的情況下,使用break語(yǔ)句時(shí),僅退出包含break語(yǔ)句的那層循環(huán)體?!?2—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句【例4.13】假設(shè)自動(dòng)售貨機(jī)出售4種商品,薯片、爆米花、巧克力和可樂,售價(jià)分別是每份3.0,2.5,4.0和3.5元。在屏幕上顯示以下菜單,用戶可以連續(xù)查詢商品的價(jià)格,當(dāng)查詢次數(shù)超過5次時(shí),自動(dòng)退出查詢;不到5次時(shí),用戶可以選擇退出。當(dāng)用戶輸入編號(hào)1~4時(shí),顯示相應(yīng)商品的價(jià)格;輸入0,退出查詢;輸入其他編號(hào),顯示價(jià)格為0。[1]Selectcrisps[2]Selectpopcorn[3]Selectchocolate[4]Selectcola[0]Exit—53—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句#include<stdio.h>intmain(){intchoice,i;doubleprice;for(i=1;i<=5;i++){/*定義變量*//*循環(huán)5次*/printf("[1]Selectcrisps\n");printf("[2]Selectpopcorn\n");printf("[3]Selectchocolate\n");printf("[4]Selectcola\n");printf("[0]Exit\n");printf("Enterchoice:");scanf("%d",&choice);if(choice==0)break;/*輸出提示信息*//*輸入數(shù)據(jù)*//*當(dāng)輸入為0時(shí)跳出循環(huán)*/—54—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句switch(choice)/*根據(jù)輸入的數(shù)值決定price的取值*/{case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}printf("price=%0.1f\n",price);/*輸出price的值*/}printf("Thanks\n");return0;/*輸出提示信息*/}—55—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句程序運(yùn)行的結(jié)果為:[1]Selectcrisps[2]Selectpopcorn[3]Selectchocolate[4]Selectcola[0]ExitEnterchoice:1price=3.0[1]Selectcrisps[2]Selectpopcorn[3]Selectchocolate[4]Selectcola[0]ExitEnterchoice:0Thanks—56—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句【例4.14】輸入10個(gè)字符,分別統(tǒng)計(jì)出其中空格或回車、數(shù)字和其他字符的個(gè)數(shù)。#include<stdio.h>intmain(){intblank=0,digit=0,i,other=0;charch;printf("Enter10characters:");for(i=1;i<=10;i++){/*初始化變量*//*輸出提示信息*//*循環(huán)10次*//*輸入一個(gè)字符*//*判斷字符*/ch=getchar();switch(ch){case'':case'\n':blank++;break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':digit++;break;/*如果為空格或回車,blank自加1*//*計(jì)算數(shù)字的個(gè)數(shù)*/—57—4.6其他循環(huán)控制語(yǔ)句4.6.1break語(yǔ)句default:other++;break;/*計(jì)算其他字符的個(gè)數(shù)*/}}printf("blank=%d,digit=%d,other=%d\n",b

溫馨提示

  • 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)論