學(xué)習(xí)-02shell linux編程控制流結(jié)構(gòu)if for while case util break continue_第1頁(yè)
學(xué)習(xí)-02shell linux編程控制流結(jié)構(gòu)if for while case util break continue_第2頁(yè)
學(xué)習(xí)-02shell linux編程控制流結(jié)構(gòu)if for while case util break continue_第3頁(yè)
學(xué)習(xí)-02shell linux編程控制流結(jié)構(gòu)if for while case util break continue_第4頁(yè)
學(xué)習(xí)-02shell linux編程控制流結(jié)構(gòu)if for while case util break continue_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第18章控制流結(jié)構(gòu)所有功能必須有能力進(jìn)行判斷,也必須有能力基于一定條件處理相關(guān)命令。本章講述這方面的功能,在中創(chuàng)建和應(yīng)用控制結(jié)構(gòu)。while、for和untilloopsifthenelse在書(shū)寫(xiě)正確前,大概講一下退出狀態(tài)。任何命令進(jìn)行時(shí)都將返回一個(gè)退出狀態(tài)。如果要觀察其退出狀態(tài),使用最后狀態(tài)命令:$echo||。其余兩種是處理s 退出及相應(yīng)退出狀態(tài)或函數(shù)返回碼。在第19章講到函數(shù) exit如果只在命令提示符下鍵入exit,假定沒(méi)有在當(dāng)前狀態(tài)創(chuàng)建另一個(gè)s ,將退當(dāng)前s 如果在中鍵入exit,s 將試圖(通常是這樣)返回上一個(gè)命令返回值。有許多退出值,但其中相對(duì)于和一般系統(tǒng)命令最重要的有兩種,即:退出狀態(tài)0退出狀態(tài) 中加入自己的退出狀態(tài)(它將退出。本書(shū)鼓勵(lì)這樣做,因?yàn)榱硪粋€(gè) 或返回函數(shù)可能要從s 中抽取退出。另外,相信加入本身的退出腳如果愿意,用戶可以在一個(gè)用戶輸入錯(cuò)誤后或一個(gè)不可覆蓋錯(cuò)誤后或正常地處理結(jié)束后退出。上述問(wèn)題出在哪里?如果創(chuàng)建失敗或創(chuàng)建成功文件拷貝失敗,如何處理?這里需要從不同的中拷貝不同的文件。必須在命令執(zhí)行前或最后令退出前決定處理方法。s會(huì)提供一系列命令語(yǔ)句等補(bǔ)救措施來(lái)幫助你在命令成功或失敗時(shí),或需要處理一個(gè)命令時(shí)采取正確的動(dòng)作。if、then、else語(yǔ)句提供條件測(cè)試。測(cè)試可以基于各種條件。例如文件的權(quán)限、長(zhǎng)度、數(shù)值或字符串的比較。這些測(cè)試返回值或者為真(0,或者為假(1?;诖私Y(jié)果,可以進(jìn)行相關(guān)操作。在講到條件測(cè)試時(shí)已經(jīng)涉及了一些測(cè)試語(yǔ)法。for循環(huán)每次處理依次列表內(nèi)信息,直至循環(huán)耗盡。Until循環(huán) 此循環(huán)語(yǔ)句不常使用,until循環(huán)直至條件為真。條件部分在循環(huán)末尾部分。While循環(huán) for循環(huán)中嵌入另一個(gè)for循環(huán)。從現(xiàn)在起,中echo語(yǔ)句使用LINUX或BSD版本,也就是說(shuō)使用echo方法echoen,意即從echo結(jié)中一行令應(yīng)于UNIX(系統(tǒng)V和BSD)的統(tǒng)一的echo命令參閱19章s 函。ifthenelseif語(yǔ)句測(cè)試條件,測(cè)試條件返回真(0)或假(1)if語(yǔ)句結(jié)if條件then命令1elif條件2then命令2else命令讓我們來(lái)具體講解if語(yǔ)句的各部分功能。If條件1 如果條件1為真 命令 執(zhí)行命令elif條件 如果條件1不成 命令 執(zhí)行命令 如果條件1,2均不成立 elif和elseelif和else部分。If語(yǔ)句可以有許多elif部分。最常用的if語(yǔ)句是ifthenfi結(jié)構(gòu)。then命令使用if語(yǔ)句時(shí),必須將then部分放在新行,否則會(huì)產(chǎn)生錯(cuò)誤。如果要不分行,必須使用命ifif條件;then注意,語(yǔ)句可以不這樣縮排,但建議這樣做,因?yàn)榭梢栽鰪?qiáng)的清晰程度。在條件流10是否小于12if語(yǔ)句內(nèi)部繼續(xù)執(zhí)行,這里只有一個(gè)簡(jiǎn)單的echo命令。如果條件為假,退出,因?yàn)榇苏Z(yǔ)句無(wú)else部分。不必拘泥于變量或數(shù)值測(cè)試,也可以測(cè)知系統(tǒng)命令是否成功返回。對(duì)grep使用if語(yǔ)句找出grep是否成功返回信息。下面的例子中g(shù)rep用于查看Dave是否在數(shù)據(jù)文件data.file中,注意上面的例子中,grep輸出定向到系統(tǒng)堆。如果匹配成功,grep返回0,將grep嵌入if語(yǔ)句;如果grepif部分為真。正像前面看到的,可以用grep作字符串操作。下面的中,用戶輸入一個(gè)名字列表下面測(cè)試文件拷貝是否正常,如果cp命令并沒(méi)有拷貝文件myfile到myfile.bak,則打印錯(cuò)誤信息。注意錯(cuò)誤信息中`basename$0`打印名。如果錯(cuò)誤退出,一個(gè)好習(xí)慣是顯示名并將之定向到標(biāo)準(zhǔn)錯(cuò)誤中。用戶應(yīng)該知道產(chǎn)生錯(cuò)誤的名。注意,文件可能沒(méi)找到,系統(tǒng)也產(chǎn)生本身的錯(cuò)誤信息,這類錯(cuò)誤信息可能與輸出混在一起。既然已經(jīng)顯示系統(tǒng)錯(cuò)誤信息獲知失敗,就沒(méi)必要顯示兩次。要去除系統(tǒng)產(chǎn)生的錯(cuò)誤和統(tǒng)出只簡(jiǎn)將準(zhǔn)誤輸定即。改:>/dev/null2>&1。 當(dāng)運(yùn)行一些管理時(shí),可能要在根下運(yùn)行它,特別是移動(dòng)某種全局文件或進(jìn)行權(quán)限改變時(shí)。一個(gè)簡(jiǎn)單的測(cè)試可以獲知是否運(yùn)行在根下。下面中變量DIRECTORY使用當(dāng)前令替換操作,然后此變量值與"/"字符串比較(/為根。如果變量值與字符串不等,則用戶退出,退出狀態(tài)為1意味錯(cuò)誤信息產(chǎn)生。可以用if語(yǔ)句測(cè)試文件權(quán)限,下面簡(jiǎn)單測(cè)試文件test.txt是否被設(shè)置到變量LOGNAMEif語(yǔ)句可用來(lái)測(cè)試傳入中參數(shù)的個(gè)數(shù)。使用特定變量$#,表示調(diào)用參數(shù)的個(gè)數(shù)??梢砸韵聹y(cè)試確保有三個(gè)參數(shù)。如果沒(méi)有,則返回一個(gè)可用信息到標(biāo)準(zhǔn)錯(cuò)誤,然后代碼3,則顯示所有參數(shù)。有時(shí)需要知道運(yùn)行是交互模式(終端模式)還是非交互模式(cron或at。也需要這個(gè)信息以決定從哪里取得輸入以及輸出到哪里,使用test命令并帶有-t選項(xiàng)很容易確認(rèn)if命令下面的例子測(cè)試環(huán)境變量EDITOR是否已設(shè)置。如果EDITOR變量為空,將此信息通知用戶。如果已設(shè)置,在屏幕上顯示編輯類型。LOGNAME是否包含root值。這類語(yǔ)句是加在腳本開(kāi)頭作為一安全性準(zhǔn)則的普遍方法。當(dāng)然LOGNAME可用于測(cè)試任何有效用戶。如果變量不等root,返回信息到標(biāo)準(zhǔn)錯(cuò)誤輸出即屏幕,也就是通知用戶不是root,然如果字符串root等于LOGNAME變量,else部分后面語(yǔ)句開(kāi)始執(zhí)實(shí)際上,會(huì)繼續(xù)進(jìn)行正常的任務(wù)處理,這些語(yǔ)句在fi后面,因?yàn)樗蟹莚oot用戶在腳可以向傳遞位置參數(shù),然后測(cè)試變量。這里,如果用戶在名字后鍵入 為空,ls-A將返回空,然后對(duì)此返回一信息。then和else部分,有時(shí)也許使用者并不關(guān)心條件為真或?yàn)椴恍业氖莍f語(yǔ)句各部分不能為空—一些語(yǔ)句已經(jīng)可以這樣做。為解決此問(wèn)題,s提供了:空命令??彰顬檎妫ㄒ舱穷A(yù)想的那樣?;氐角懊娴睦?,如果為空,可以 ,下面的接受一個(gè)參數(shù),并用之創(chuàng)建 if["$DIRECTORY"=""]if[$#-lt如果字符串為空,返回一可用信息,退出。如果 已經(jīng)存在,從頭至尾走一 在另一個(gè)拷貝實(shí)例中,傳入兩個(gè)參數(shù)(應(yīng)該包含文件名,系統(tǒng)命令cp將$1拷入$2,輸出至/dev/null。如果命令成功,則仍使用空命令并且不采取任何動(dòng)作。下面的用sort命令將文件accounts.qtr分類,并輸出至系統(tǒng)堆。沒(méi)人愿意觀察屏幕上300行的分類頁(yè)。成功之后不采取任何動(dòng)作。如果失敗,通知用戶。工作方式如下:首先檢查是否設(shè)置了該變量,如果已經(jīng)賦值,輸出信息提示使用vi作如果未賦值,則提示用戶,詢問(wèn)其是否要設(shè)置該值。檢驗(yàn)用戶輸入是否為大寫(xiě)或小寫(xiě)y,如果輸入Y或y,再提示輸入編輯類型。使用$EDITOR=“”測(cè)試用戶是否未賦值和未點(diǎn)擊return鍵。一種更有效的方法是使用-z$EDITOR方法,本文應(yīng)用了這兩種方法。如果測(cè)試失敗,返回信息到屏幕,即使用vi做缺省編輯器,因而EDITOR賦值為vi。如果用戶輸入了一個(gè)名字到變量EITR,則使用它作為編輯器并馬上讓其起作用,即導(dǎo)出變量EIT。前面將名傳入創(chuàng)建了一個(gè),然后提示用戶是否應(yīng)創(chuàng)建。下面的例子創(chuàng)建一個(gè),并從當(dāng)前將所有*.txt文件拷入新。但是這段中用最后狀態(tài)命令檢測(cè)了每一個(gè)是否成功執(zhí)行。如果命令失敗則通知用戶。下面的例子進(jìn)行數(shù)值測(cè)試。包含了一個(gè)計(jì)數(shù)集,用戶將其賦予一個(gè)新值就可改變它。如果用戶用y或Y響應(yīng)新值,將提示用戶輸入增量。如果鍵入回車鍵,原值仍未變。鍵入一個(gè)增量,首先測(cè)試是否為數(shù)字,如果是,加入計(jì) COUNTOR中,最后顯示新值以下是用戶登錄時(shí)啟動(dòng)應(yīng)用前加入相應(yīng)安全限制功能的基本框架。首先提示輸入用戶名和,如果用戶名和均匹配中相應(yīng)字符串,用戶登錄成功,否則用戶退出。首先設(shè)置變量為假總是假定用戶輸入錯(cuò)誤,stty當(dāng)前設(shè)置被保存,以便隱藏如果用戶ID和正確(是mayday,明亮INVALID_USER和INVALID_PASSWD設(shè)置為no表示有效用戶或,然后執(zhí)試,如果兩個(gè)變量其中之一為yes,缺省情況下,腳鍵入有效的ID和,用戶將允許進(jìn)入。這是一種登錄的基本框架。下面的例子中有效用戶ID為dave或pauline。ifthenelse語(yǔ)句的elif使用一個(gè)簡(jiǎn)單的例子,測(cè)試輸入的用戶名。首先測(cè)試是否輸入一個(gè)名字,如果elif測(cè)試是否匹配root、louise或dave,如果不匹配其root、louie或dave。 /usr/opts/audit/logs或/usr/local/audit/log中,具體由其安裝人決定。在定位此文件前,首先確保文件可讀,此即測(cè)試部分。如果未找到文件或文件不可讀,則返回錯(cuò)誤信息。如下:運(yùn)行上面,如果文件在上述兩個(gè) 之一中并且可讀,將可以找到它。如果不是,回退面敗假件在。case語(yǔ)句為多選擇語(yǔ)句??梢杂胏ase語(yǔ)句匹配一個(gè)值與一個(gè)模式,如果匹配成功,執(zhí)行相匹配令。case語(yǔ)句格式如下:case值模式命令模式命令casein,每一模式必須以右括號(hào)結(jié)束。取值可以取值將檢測(cè)匹配的每一個(gè)模式。一旦模式匹配,則執(zhí)行完匹配模式相應(yīng)命令后不再繼續(xù)*捕獲該值,再接受其他輸入。*?[..]類或范圍中任意字符。下面的提示輸入1到5,輸入數(shù)字傳入case語(yǔ)句,變量ANS設(shè)置為case取值測(cè)試變?nèi)绻ヅ涑晒?,則執(zhí)行模式里面令直至;;,這里只反饋非用戶數(shù)字選擇的信息,然后case退出,因?yàn)槠ヅ湟颜业健?使用case|”符號(hào)作為或命令,例如vt100|vt102匹配模式vt100或vt10。vt100或vt102vt100|vt102執(zhí)行命令是設(shè)置TERM變量為vt100。如果用戶輸入與模式不匹配,*用來(lái)捕獲輸入,其中命令為將TERM設(shè)置為vt100。最后在case語(yǔ)句外,導(dǎo)出TERM變量。由于使用*模式匹配,無(wú)論TERM都將有一個(gè)有效的終端類型值。casey退出。如果用戶輸入Y、y或yes,處理繼續(xù)執(zhí)行case語(yǔ)句后面部分。如果用戶輸入N、n或no或其他響應(yīng),用戶退出。下面中,測(cè)試特定變量$#,它包含傳遞的參數(shù)個(gè)數(shù),如果不等于1,退出并顯示可用然后casepasswd、start、stop或help,相對(duì)于每一種匹配模式執(zhí)行進(jìn)一步處理。如果均不匹配,顯示可用信息到標(biāo)準(zhǔn)錯(cuò)誤輸出。不一定要在匹配模式后加入命令,如果你原本不想做什么,只是在進(jìn)一步處理前過(guò)濾出意外響應(yīng),這樣做是一種好辦法。如果要運(yùn)行對(duì)應(yīng)于一個(gè)會(huì)計(jì)部門的帳目報(bào)表,必須首先在決定運(yùn)行報(bào)表的類型前確認(rèn)用case可以很容易實(shí)現(xiàn)上述功能。是234、453、65或454用戶出并回可信息。一旦響應(yīng)了用戶的有效部門號(hào),應(yīng)用同樣的技術(shù)取得報(bào)表類型,在case語(yǔ)句末尾顯示有效如果在讀變量時(shí)輸入回車鍵,不一定總是退出。可以先測(cè)試是否已設(shè)置了變量,如果未設(shè)置,可以設(shè)置該值。下面的中,要求用戶輸入運(yùn)行報(bào)表日期。如果用戶輸入回車鍵,則使用缺省日期星期六,并設(shè)置為變量when可以推斷出case語(yǔ)句有時(shí)與ifthenelse語(yǔ)句功能相同,在某些條件下,這種假定是正確for變量名in列表當(dāng)變量值在列表里,for循環(huán)即執(zhí)行一次所有命令,使用變量名列表中取值。命令可為任何有效的s命令和語(yǔ)句。變量名為任何單詞。In列表用法是可選的,如果不用它,for此例僅顯示列表12345,用變量名列表下面for循環(huán)中,列表包含字符串“orangeredbluegrey”,命令為echo,變量名為 params in"$@"或 params in"$*"下面的例子不使用in列表選項(xiàng),for循環(huán)查看特定參數(shù)$@或$*對(duì)上述采取進(jìn)一步動(dòng)作。如果要查看一系列文件,可在for循環(huán)里使用find命令,利用find命令,這些取值形成-name因?yàn)閒or循環(huán)可以處理列表中的取值,現(xiàn)設(shè)變量為網(wǎng)絡(luò)服務(wù)器名稱,并使用for循環(huán)連接每可以用for循環(huán)備份所有文件,只需將變量作為cp命令的目標(biāo)參數(shù)。這里有一變量.bak,當(dāng)在循環(huán)中使用cp命令時(shí),它作為此命令目標(biāo)文件名。列表命令為ls。匹配所有以LPSO開(kāi)頭文件并將其轉(zhuǎn)換為大寫(xiě)。這里使用了ls和cat命令。ls用于查詢出相關(guān)文件,cat用于將之管道輸出至tr命令。目標(biāo)文件擴(kuò)展名為.UC,注意在for循環(huán)中使用ls命令sed.HOLD.mv為擴(kuò)展名的新文件前面討論expr時(shí),循環(huán)時(shí)如果要加入計(jì)數(shù),使用此命令。下面使用ls在for循環(huán)中列出上 上 嵌入循環(huán)可以將一個(gè)for循環(huán)嵌在另一個(gè)forfor變量名1 for變量名2 in列表2

命令下面即為嵌入for循環(huán),這里有兩個(gè)列表APPS和SCRIPTS。第一個(gè)包含服務(wù)器上應(yīng)用的路徑,第二個(gè)為運(yùn)行在每個(gè)應(yīng)用上的管理。對(duì)列表 APPS上的每一個(gè)應(yīng)用,列表SCRIPTS里的將被運(yùn)行,實(shí)際上為運(yùn)行。使用tee命令在登錄文件上放一條目,因此輸出到屏幕的同時(shí)也輸出到一個(gè)文件。查看輸出結(jié)果就可以看出嵌入for循環(huán)怎樣使用列表SCRIPTS以執(zhí)行列表APPS上的處理。until循環(huán)執(zhí)行一系列命令直至條件為真時(shí)停止。until循環(huán)與while循環(huán)在處理方式上剛好相反。一般while循環(huán)優(yōu)于until循環(huán),但在某些時(shí)候—until循環(huán)更加有用。until條件命令條件可為任意測(cè)試條件,測(cè)試發(fā)生在循環(huán)末尾,因此循環(huán)至少執(zhí)行一次—這段不斷的搜尋who命令中用戶root,變量IS-ROOT保存grep命令結(jié)果如果找到了rootsimonroot已經(jīng)登錄,注意這里sleepuntil循環(huán)中,因?yàn)楸仨氉屟h(huán)體內(nèi)命令睡眠幾秒鐘再執(zhí)行,否則會(huì)消耗大量系統(tǒng)資源。下面例子中,until循環(huán)不斷掛起做睡眠,直至文件/tmp/monitor.lck被刪除。文件刪除后,上述例子是使與其他處理過(guò)程協(xié)調(diào)工作的法。還有另外法使間互相通信。假定有另一段process.main用于搜集本地網(wǎng)絡(luò)所有機(jī)器的信息并將之放入一個(gè)報(bào)表文件。process.main運(yùn)行時(shí),創(chuàng)建了一個(gè)LCK文件(鎖文件,上面必須接收process.mainprocess仍然在修改報(bào)表文件時(shí)試圖處理該文件就不太好了。為克服這些問(wèn)題,process.main創(chuàng)建了一個(gè)LCK文件,當(dāng)它完成時(shí),就刪除此文件。述掛待LCK文件被刪除,一旦LCK文件刪除,上述即可處理報(bào)表文until循環(huán)做監(jiān)視條件也很有用。假定要監(jiān)視文件系統(tǒng)容量,當(dāng)它達(dá)到一定水平時(shí)通知超級(jí)用戶。下面的監(jiān)視文件系統(tǒng)/logs,不斷從變量$LOOK_OUT中抽取信息,$LOOK_OUT包如果容量達(dá)到90%,觸發(fā)命令部分,向超級(jí)用戶發(fā)送郵件,退出。必須退出,如果不退出,條件保持為真(例如,容量總是保持在90%以上),將會(huì)不斷的向超級(jí)用戶發(fā)送郵while命命令雖然通常只使用一個(gè)命令,但在while和dowhileCOUNTER小于5while循環(huán)可用于鍵盤(pán)信息。下面的例子中,輸入信息被設(shè)置為變量FILM,按<Ctrl-whil循環(huán)最常用于從一個(gè)文件中數(shù)據(jù),因此編寫(xiě)可以處理這樣的信息。定面員從及其ID號(hào)的一個(gè)文件中信息??梢杂靡粋€(gè)變量保存每行數(shù)據(jù),當(dāng)不再有數(shù)據(jù)時(shí)條件為真。while循環(huán)使用輸入重定向以保證從文件中數(shù)據(jù)。注意整行數(shù)據(jù)被設(shè)置為單變量$LINE.。輸出時(shí)要去除冒號(hào)域分隔符,可使用變量IFS。在改變它之前保存IFS的當(dāng)前設(shè)置。然后在執(zhí)行完后恢復(fù)此設(shè)置。使用IFS可以將域分隔符改為冒號(hào)而不是空格或tab鍵。這里有3這里從人員文件中數(shù)據(jù),打印所有細(xì)節(jié)到一個(gè)保留文件中,直至發(fā)現(xiàn)JamesLenod,退出。測(cè)試前反饋的信息要確保“JamesLenod”加入保留文件中。注意,所有變量在頂端被設(shè)置完畢。這樣當(dāng)不得不對(duì)變量進(jìn)行改動(dòng)時(shí)可以節(jié)省時(shí)間和輸入。所有編輯都放在頂端,而不是混于整個(gè)間。還可以采取進(jìn)一步動(dòng)作,列出多少個(gè)雇員屬于同一部門。這里保持同樣的讀方式。假定每個(gè)域都有一個(gè)變量名,然后在case語(yǔ)句里用expr增加每行匹配。任何發(fā)現(xiàn)的未知部門知一個(gè)常用的任務(wù)是讀一個(gè)文件,統(tǒng)計(jì)包含某些數(shù)值列的數(shù)值總和。下面的文件包含有部門STA和GIFT所賣的商品數(shù)量?,F(xiàn)在的任務(wù)是要統(tǒng)計(jì)部門GIFT所賣的各種商品數(shù)量。使用expr保存統(tǒng)計(jì)和,看下面的expr語(yǔ)句。變量LOOP和TOTAL0ITEMS加入TOTAL,第一次循環(huán)只包含第一種商品,但隨著過(guò)程繼續(xù),ITEMS逐漸加入TOTAL。上面一行如果變量TOTAL0。這是在expr里初始化變量的第一個(gè)例有時(shí)可能希望每次處理兩個(gè)記錄,也從記錄中進(jìn)行不同域的比較。每次讀兩個(gè)記錄很容易,就是要在第一個(gè)while語(yǔ)句之后將第二個(gè)讀語(yǔ)句放在其后。使用這項(xiàng)技術(shù)時(shí),了不斷進(jìn)行檢查,因?yàn)樗鼘?shí)際上讀了大量的記錄。忽略#時(shí)必須忽略以一定字符開(kāi)頭的行,這時(shí)需要用case語(yǔ)句,因?yàn)?是一個(gè)特殊字符,最好首先用反斜線其特殊意義,在#符號(hào)后放一個(gè)星號(hào)*,指定*后可包含任意字符。我們已經(jīng)知道可以忽略以某些字符開(kāi)始的行,因此這里沒(méi)有問(wèn)題。首先讀文件,忽略所‘ITEM’開(kāi)始的標(biāo)注行。文件至一臨時(shí)工作文件中,為確保不存在空行,用sed刪除空行,需要真正做的是過(guò)濾文本文件。如下:將兩段結(jié)合在一起很容易。實(shí)際上這本來(lái)是一個(gè),為講解方便,才將其分成兩個(gè)。第5章查看文件描述符時(shí),提到有必要用while循環(huán)將數(shù)據(jù)讀入一個(gè)文件。使用文件描述符3和4,下面的進(jìn)行文件myfile.txt到myfile.bak的份。注意,開(kāi)始測(cè)試文件是否存在,果或據(jù)立。有while循環(huán)用到了空命令(,這是一個(gè)死循環(huán),因?yàn)閚ull返回真。嘗試讀至文件結(jié)尾將返回錯(cuò)誤,那時(shí)也終止執(zhí)行。有時(shí)需要基于某些準(zhǔn)則退出循環(huán)或跳過(guò)循環(huán)步。 break命令允許跳出循環(huán)。break通常在進(jìn)行一些處理后退出循環(huán)或case語(yǔ)句。如果是在一個(gè)嵌入循環(huán)里,可以指定跳出的循環(huán)個(gè)數(shù)。例如如果在兩層循環(huán)內(nèi),用break2剛好跳出整個(gè)下面的例子中,進(jìn)入死循環(huán)直至用戶輸入數(shù)字大于5。要跳出這個(gè)循環(huán),返回到continue命令類似于break命令,只有一點(diǎn)重要差別,它不會(huì)跳出循環(huán),只是跳過(guò)這個(gè)循環(huán)步。假定現(xiàn)在需要處理

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論