




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章 程序的流程控制6.4跳轉(zhuǎn)控制6.3重復(fù)執(zhí)行6.2選擇性執(zhí)行6.1Java的流程控制語句教學(xué)要求:理解:流程控制語句的作用,跳轉(zhuǎn)控制語句break和continue的作用掌握:if-else語句及嵌套的if-else語句、switch語句、for語句、while語句和do-while語句的使用,跳轉(zhuǎn)控制語句break語句和continue語句的使用6.1 Java的流程控制語句在程序設(shè)計中,為完成一定的操作或?qū)崿F(xiàn)一定的功能,需要按照一定的順序安排好需要執(zhí)行的語句,這就是流程控制。Java語言支持3種流程控制結(jié)構(gòu):順序結(jié)構(gòu):默認(rèn)的選擇結(jié)構(gòu):if-else語句和switch語句循環(huán)結(jié)構(gòu):for語句、while語句和do-while語句6.1 Java的流程控制語句(續(xù))默認(rèn)的順序結(jié)構(gòu)如圖:classSequenceDemo1{
public
static
voidmain(String[]args){ Stringname="ZhangSan"; Stringgreetings="WelcometoJavaWorld!"; System.out.print(name); System.out.print(":"); System.out.println(greetings); }}6.2 選擇性執(zhí)行在某些應(yīng)用場景中,需要根據(jù)特定條件判斷的結(jié)果,選擇性的執(zhí)行某些語句。Java的分支結(jié)構(gòu)語句就能實現(xiàn)這種選擇性的執(zhí)行if-else語句switch語句6.2 選擇性執(zhí)行(續(xù))二選一:if-else語句當(dāng)這個特定的條件只有正、反2面時,可以用基本的if-else語句來實現(xiàn)二選一結(jié)構(gòu):條件為“正”——即條件成立時,執(zhí)行某些語句;條件為“反”——即條件不成立時,執(zhí)行另外的語句。6.2 選擇性執(zhí)行(續(xù))二選一的if-else語句語法:執(zhí)行流程:布爾表達(dá)式結(jié)果為true,代表條件成立,將執(zhí)行if后{}中的語句序列1;布爾表達(dá)式結(jié)果為false,代表條件不成立,將執(zhí)行else后{}中的語句序列2。示例if(布爾表達(dá)式){
語句序列1}else{
語句序列2}6.2 選擇性執(zhí)行(續(xù))if-else語句在使用時的一些注意事項:if后的表達(dá)式必須是布爾表達(dá)式,其值只能是true或者false。if分支或else分支,若其后的執(zhí)行語句只有1條,則{}可以省略(但不推薦省略)。else分支并不是必須的。如果只需要在滿足一定條件時執(zhí)行一定的操作,而條件不滿足時什么也不必做,則可以省略else分支。6.2 選擇性執(zhí)行(續(xù))多選一:嵌套的if-else結(jié)構(gòu)嵌套的if-else結(jié)構(gòu),可以實現(xiàn)從多種(主要是3種及以上)分支中選其一執(zhí)行。規(guī)整的嵌套if-else結(jié)構(gòu)(也稱作if-else-if結(jié)構(gòu)),如圖所示:6.2 選擇性執(zhí)行(續(xù))規(guī)整的嵌套if-else語句語法:示例if(布爾表達(dá)式1){
語句序列1}elseif(布爾表達(dá)式2){
語句序列2}elseif(布爾表達(dá)式2){
語句序列3}……else{
語句序列N}6.2 選擇性執(zhí)行(續(xù))嵌套的if-else變形1:在if分支中再嵌套if-else結(jié)構(gòu)。if(布爾表達(dá)式1){ //還可以包含其它語句if(布爾表達(dá)式2){
語句序列1 }else{
語句序列2 } //還可以包含其它語句}else{
語句序列3}6.2 選擇性執(zhí)行(續(xù))嵌套的if-else變形2:在else分支中再嵌套if-else結(jié)構(gòu)。if(布爾表達(dá)式1){
語句序列1}else{ //還可以包含其它語句
if(布爾表達(dá)式2){
語句序列2}else{
語句序列3}//還可以包含其它語句}6.2 選擇性執(zhí)行(續(xù))嵌套的if-else結(jié)構(gòu)補(bǔ)充說明:如果有必要的話上述結(jié)構(gòu)中的else分支都是可以省略的。即使if或else分支中的可執(zhí)行語句只有1條,也最好不要省略{},如果分支中嵌套了if-else語句,就更不要省略{},{}可以界定if或else分支的范圍,以方便對if和else進(jìn)行匹配。在嵌套的if-else結(jié)構(gòu)中,else與if配對的原則是:else總是與其前面最近的一個未配對過的if配對。弄清else與哪個if配對,才能理清所描述的條件。示例6.2 選擇性執(zhí)行(續(xù))另一種多選一:switch語句switch(表達(dá)式){ case值1:語句序列1 case值2:語句序列2 …… case值N:語句序列N default:語句序列N+1}6.2 選擇性執(zhí)行(續(xù))switch語句使用說明switch后的表達(dá)式必須是一個能得到整型值的表達(dá)式,簡單的說,switch后必須是一個整數(shù)。case后的值也必須是整數(shù)值,case與值之間必須有空格。6.2 選擇性執(zhí)行(續(xù))switch語句使用說明(續(xù))執(zhí)行方式:計算switch后表達(dá)式的值,然后順序的與每一個case后的值進(jìn)行匹配,如果找到相等的值,即是找到了執(zhí)行的入口,接下來就從該case子句的語句序列開始順次地向下執(zhí)行,直至遇到switch的}為止;如果表達(dá)式的值與每一個case后的值都不相等,則執(zhí)行default后的語句,直至遇到switch的}為止。6.2 選擇性執(zhí)行(續(xù))switch語句使用說明(續(xù))使用default的意圖是:若switch的表達(dá)式?jīng)]有找到匹配的值,即沒有滿足條件的分支,則執(zhí)行default后的語句,可以給用戶一些提示信息。default子句是可以省略的。示例6.2 選擇性執(zhí)行(續(xù))實例運(yùn)用輸入3個整數(shù),找出其中的最大者并輸出輸入一個分?jǐn)?shù)值,然后判定該分?jǐn)?shù)對應(yīng)的成績等級,假設(shè):分?jǐn)?shù)>=90,等級為A;分?jǐn)?shù)>=80而<90,則為B;分?jǐn)?shù)>=70而<80,則為C;分?jǐn)?shù)>=60而<70,則為D;分?jǐn)?shù)<60就為E。改用switch結(jié)構(gòu)來實現(xiàn)上述應(yīng)用6.3 重復(fù)執(zhí)行有些問題可以通過重復(fù)執(zhí)行某些操作來解決,比如說求1+2+……+100的值。Java提供了幾種實現(xiàn)重復(fù)執(zhí)行的語句(循環(huán)語句)while語句for語句do-while語句6.3 重復(fù)執(zhí)行(續(xù))while語句:執(zhí)行流程:示例while(循環(huán)條件){//需要重復(fù)執(zhí)行的語句,也叫做循環(huán)體}6.3 重復(fù)執(zhí)行(續(xù))while循環(huán)使用時的注意事項:一般在進(jìn)行循環(huán)條件判定之前給循環(huán)變量賦初值。為避免死循環(huán)的出現(xiàn),循環(huán)體中應(yīng)包含能使循環(huán)趨向結(jié)束的語句。比如修改循環(huán)變量的值,使得某個時刻循環(huán)條件不再成立而退出循環(huán)。6.3 重復(fù)執(zhí)行(續(xù))for語句:執(zhí)行流程:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ //循環(huán)體}6.3 重復(fù)執(zhí)行(續(xù))說明:表達(dá)式2代表循環(huán)條件,應(yīng)是一個布爾表達(dá)式,根據(jù)其值為true或為false確定是否執(zhí)行循環(huán)體語句。表達(dá)式1通常用于給循環(huán)變量賦初值,這部分只會執(zhí)行一次。表達(dá)式3通常用于修改循環(huán)變量的值,使得最終表達(dá)式2代表的循環(huán)條件可能成為false,從而退出循環(huán)。表達(dá)式3在每次循環(huán)體執(zhí)行完畢之后都會執(zhí)行一次。示例6.3 重復(fù)執(zhí)行(續(xù))表達(dá)式缺省的說明:無論缺省哪個表達(dá)式,或是表達(dá)式全部缺省,其中分隔3個表達(dá)式的分號“;”一個都不能少。表達(dá)式1可以缺省,則循環(huán)變量賦初值應(yīng)放到for語句之前進(jìn)行。表達(dá)式2可以缺省,但這樣就相當(dāng)于是循環(huán)條件永遠(yuǎn)為true,循環(huán)將無限次地運(yùn)行下去。表達(dá)式3可以缺省,則循環(huán)變量值的改變需要放至循環(huán)體中進(jìn)行。3個表達(dá)式全部可以缺?。ú煌扑])。6.3 重復(fù)執(zhí)行(續(xù))do-while語句:執(zhí)行流程:示例do{ //循環(huán)體}while(循環(huán)條件);6.3 重復(fù)執(zhí)行(續(xù))循環(huán)的嵌套一個循環(huán)體內(nèi)部又包含另一個完整的循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以再嵌入循環(huán)結(jié)構(gòu),這樣就可以形成多層循環(huán)。3種循環(huán)語句while語句、do-while語句和for語句之間可以互相嵌套。示例6.3 重復(fù)執(zhí)行(續(xù))實例運(yùn)用求1!+2!+……+20!的和值用π/4≈1-1/3+1/5-1/7+……公式求π的近似值,直到某一項的絕對值小于10-6為止。百錢買百雞問題:現(xiàn)有100錢,要買100只雞,已知母雞5錢1只,公雞3錢1只,小雞1錢3只,要求找出用100錢買100只的方案。6.4 跳轉(zhuǎn)控制分支語句、循環(huán)語句都有自己的執(zhí)行流程,尤其是循環(huán)語句,若不遇到合適的條件循環(huán)不會終止,但有的時候在特定條件出現(xiàn)的時候,可能會希望能將現(xiàn)有的執(zhí)行流程改變,而跳轉(zhuǎn)到其它地方繼續(xù)執(zhí)行。Java提供了一些可以控制執(zhí)行流程轉(zhuǎn)向的跳轉(zhuǎn)控制語句:break語句continue語句6.4 跳轉(zhuǎn)控制(續(xù))break語句:使用范圍:用在循環(huán)語句for、while、do-while語句和分支語句switch中。break;6.4 跳轉(zhuǎn)控制(續(xù))break用于switch結(jié)構(gòu),表示終止該switch語句的執(zhí)行,轉(zhuǎn)去執(zhí)行switch語句之后的語句。break用于循環(huán)結(jié)構(gòu),表示終止break語句所在的該層循環(huán)的執(zhí)行,轉(zhuǎn)至該循環(huán)語句之后的語句繼續(xù)執(zhí)行。示例6.4 跳轉(zhuǎn)控制(續(xù))跳轉(zhuǎn)至下一輪迭代:continue語句使用范圍:continue只能用在循環(huán)結(jié)構(gòu)中。循環(huán)體中遇到continue語句時,將跳過其后還未執(zhí)行的循環(huán)體語句,轉(zhuǎn)去判斷循環(huán)條件是否成立而決定是否要進(jìn)入下一輪迭代(即再次進(jìn)入循環(huán)體執(zhí)行)。示例continue;本章小結(jié)程序的流程控制結(jié)構(gòu)共3種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)(或叫分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。Java使用if-else語句實現(xiàn)基本的二選一分支結(jié)構(gòu),使用嵌套的if-else和switch語句可以實現(xiàn)多分支結(jié)構(gòu)。Java使用for語句、while語句和do-while語句來實現(xiàn)循環(huán)結(jié)構(gòu),其中for語句的使用最為靈活。break語句可以從switch結(jié)構(gòu)中跳出,或是終止循環(huán)的執(zhí)行,contin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國貼劑行業(yè)發(fā)展現(xiàn)狀及前景規(guī)劃研究報告
- 2025-2030年中國稀土冶煉分離市場運(yùn)行動態(tài)及發(fā)展前景分析報告
- 2025甘肅省安全員考試題庫附答案
- 南京醫(yī)科大學(xué)《課程論文寫作與學(xué)術(shù)規(guī)范》2023-2024學(xué)年第二學(xué)期期末試卷
- 黔西南民族職業(yè)技術(shù)學(xué)院《外國建筑史》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海交通職業(yè)技術(shù)學(xué)院《傳感檢測技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津商業(yè)大學(xué)《學(xué)術(shù)論文選題與寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北大學(xué)《財務(wù)會計一》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025上海市建筑安全員考試題庫及答案
- 西藏大學(xué)《軟件交互設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 小學(xué)四年級英語教學(xué)反思3篇
- DB1509T 0025-2024 肉牛舍設(shè)計與建筑技術(shù)規(guī)范
- 上海室內(nèi)裝飾施工合同示范文本2024年
- 2024版2024年《汽車文化》全套教案
- 房地產(chǎn) -中建科工五大類型項目成本指標(biāo)庫
- 2024小紅書保健品行業(yè)營銷通案
- 未來網(wǎng)絡(luò)支撐下的數(shù)字身份體系:產(chǎn)業(yè)和技術(shù)發(fā)展趨勢(2024年)定稿版本
- 新《卷煙營銷》理論知識考試題庫(附答案)
- 中考英語688高頻詞大綱詞頻表
- 知識產(chǎn)權(quán)保護(hù)與跨境執(zhí)法合作
- 肉類食品配送服務(wù)投標(biāo)方案(技術(shù)方案)
評論
0/150
提交評論