




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章Java流程控制語句Java程序通過控制語句來執(zhí)行程序流,完成一定的任務(wù)。程序流是由若干個(gè)語句組成的,語句可以是單一的一條語句,也可以是用大括號(hào)括起來的一個(gè)復(fù)合語句。Java中的控制語句有以下幾類: 分支語句:if-else,switch。 循環(huán)語句:while,do-while,for。 與程序轉(zhuǎn)移有關(guān)的跳轉(zhuǎn)語句:break,continue,return。 例外處理語句:try-catch-finally,throw。 注釋語句:/,/* */,/* */。第一節(jié) 分支語句if-else語句的基本形式如下:if (布爾表達(dá)式) /根據(jù)布爾表達(dá)式的真假?zèng)Q定執(zhí)行不同的語句語句序列1 /條
2、件為真else語句序列2 /條件為假第一節(jié) 分之語句1if-else語句其中,布爾表達(dá)式一般為條件表達(dá)式或邏輯表達(dá)式。當(dāng)布爾表達(dá)式的值為true時(shí),執(zhí)行語句序列1;當(dāng)布爾表達(dá)式的值為false時(shí),執(zhí)行語句序列2。第一節(jié) 分之語句第一節(jié) 分之語句(a) 運(yùn)行代碼圖3.1 運(yùn)行代碼及結(jié)果第一節(jié) 分之語句復(fù)雜條件下的if選擇結(jié)構(gòu)如表3.1所示。第一節(jié) 分之語句【示例3.2】 如果張浩的Java成績(jī)大于98分且音樂成績(jī)大于80分,或者Java成績(jī)等于100分且音樂成績(jī)大于70分,張浩就能獲得一個(gè)MP4作為獎(jiǎng)勵(lì)。運(yùn)行代碼及結(jié)果如圖3.2所示。(a) 運(yùn)行代碼第一節(jié) 分之語句(b) 運(yùn)行結(jié)果圖3.2 運(yùn)行
3、代碼及結(jié)果在實(shí)際處理中,常會(huì)有許多條件需要判斷,因此要用到多個(gè)if,甚至在一個(gè)if中還有多個(gè)if,故稱做嵌套if。第一節(jié) 分之語句2嵌套if語句嵌套if語句的語法格式如下:if (布爾表達(dá)式A)語句序列A if (布爾表達(dá)式B) 語句序列B1 else 語句序列B2 第一節(jié) 分之語句else子句不能單獨(dú)作為語句來使用,它必須和if配對(duì)使用。else總是與離它最近的if配對(duì)??梢允褂么罄ㄌ?hào)來改變if-else的配對(duì)關(guān)系。第一節(jié) 分之語句第一節(jié) 分之語句【示例3.3】 如果張浩的Java成績(jī)大于98分,老師就獎(jiǎng)勵(lì)他一個(gè)MP4,否則老師就罰他編碼。運(yùn)行代碼及結(jié)果如圖3.2所示。運(yùn)行代碼及結(jié)果如圖3.
4、3所示。(a) 運(yùn)行代碼若出現(xiàn)的情況有兩種以上,則可用if-else if-else語句。if-else if-else語句的語法格式如下:if (布爾表達(dá)式1)語句序列1else if (布爾表達(dá)式2)語句序列2第一節(jié) 分之語句3if-else if-else語句else if (布爾表達(dá)式N)語句序列Nelse 語句序列M第一節(jié) 分之語句3if-else if-else語句程序執(zhí)行時(shí),首先判斷布爾表達(dá)式1的值,若為真,則順序執(zhí)行語句序列1,if語句結(jié)束;若為假,則判斷布爾表達(dá)式2的值,布爾表達(dá)式2的值若為真,則順序執(zhí)行語句序列2,if語句結(jié)束;布爾表達(dá)式2的值若為假,則判斷布爾表達(dá)式3的值
5、若所有的布爾表達(dá)式的值都為假,則執(zhí)行語句序列M,if語句結(jié)束。第一節(jié) 分之語句第一節(jié) 分之語句【示例3.4】 我想買車,買什么車決定于我在銀行有多少存款。如果我的存款超過500萬,我就買凱迪拉克;否則,如果我的存款超過100萬,我就買帕薩特;否則,如果我的存款超過50萬,我就買伊蘭特;否則,如果我的存款超過10萬,我就買奧拓;否則,我買捷安特。第一節(jié) 分之語句運(yùn)行代碼如圖3.4所示。圖3.4 運(yùn)行代碼第一節(jié) 分之語句嵌套if選擇結(jié)構(gòu)如下:if(條件1) if(條件2) 代碼塊1 else 代碼塊2 else 代碼塊3第一節(jié) 分之語句【示例3.5】 學(xué)校舉行運(yùn)動(dòng)會(huì),百米賽跑跑入10秒內(nèi)的學(xué)生才有
6、資格進(jìn)入決賽。首先要判斷是否能夠進(jìn)入決賽;在確定進(jìn)入決賽的情況下,再判斷是進(jìn)入男子組還是進(jìn)入女子組。 運(yùn)行代碼如圖3.5所示。圖3.5 運(yùn)行代碼在if語句中,布爾表達(dá)式的值只有兩種:true和false。若情況更多時(shí),就需要另外一種可提供更多選擇的語句:switch語句。第一節(jié) 分之語句二、switch語句case常量N : 語句序列N;break;default:語句序列M;break;第一節(jié) 分之語句說明:(1) 表達(dá)式的類型可以為byte、short、int、char。多分支語句把表達(dá)式的值與每個(gè)case子句中的常量進(jìn)行對(duì)比,如果匹配成功,則執(zhí)行該case子句后面的語句序列。(2) ca
7、se子句中的“常量N”必須是常量,而且所有case子句中的常量應(yīng)是不同的。(3) default子句是可選的。(4) break語句執(zhí)行完一個(gè)case分支后,使程序跳出switch語句,即終止switch語句的執(zhí)行。在一些特殊情況下,多個(gè)不同的case值要執(zhí)行一組相同的操作,這時(shí)可以不用break。第一節(jié) 分之語句【示例3.6】 韓嫣參加計(jì)算機(jī)編程大賽,如果獲得第一名,將參加麻省理工大學(xué)組織的1個(gè)月夏令營;如果獲得第二名,將獎(jiǎng)勵(lì)惠普筆記本電腦一部;如果獲得第三名,將獎(jiǎng)勵(lì)移動(dòng)硬盤一個(gè);否則,沒有任何獎(jiǎng)勵(lì)。第一節(jié) 分之語句第一節(jié) 分之語句運(yùn)行代碼如圖3.6所示。圖3.6 運(yùn)行代碼第一節(jié) 分之語句使
8、用switch語句時(shí),常見的一些錯(cuò)誤如下:(1) case分支后忘記寫break,如圖3.7所示的運(yùn)行代碼及輸出結(jié)果。圖3.7 運(yùn)行代碼及輸出結(jié)果第一節(jié) 分之語句(2) case子句的常量相同,如圖3.8所示的運(yùn)行代碼。圖3.8 運(yùn)行代碼第一節(jié) 分之語句(3) default沒有放在末尾,如圖3.9所示的運(yùn)行代碼及輸出結(jié)果。圖3.9 運(yùn)行代碼及輸出結(jié)果第一節(jié) 分之語句(4) switch表達(dá)式的值不是整型或字符型,如圖3.10所示的運(yùn)行代碼。圖3.10 運(yùn)行代碼第二節(jié) 循環(huán)語句循環(huán)語句的作用是反復(fù)執(zhí)行一段語句序列,直到滿足終止循環(huán)的條件為止。一個(gè)循環(huán)一般包含以下四部分:(1) 初始化部分:用來
9、設(shè)置循環(huán)的一些初始條件,一般只執(zhí)行一次。(2) 終止部分:通常是一個(gè)布爾表達(dá)式,每一次循環(huán)都要對(duì)該表達(dá)式求值,以驗(yàn)證是否滿足終止條件。(3) 循環(huán)體部分:被反復(fù)執(zhí)行的一段語句序列,可以是一個(gè)單一語句,也可以是一個(gè)復(fù)合語句。(4) 迭代部分:在當(dāng)前循環(huán)結(jié)束,下一次循環(huán)開始執(zhí)行之前執(zhí)行的語句,常常用來更新影響終止條件的變量,使循環(huán)最終結(jié)束。第二節(jié) 循環(huán)語句while語句的語法格式如下:初始化部分while(布爾表達(dá)式) /終止部分 循環(huán)體部分 迭代部分第二節(jié) 循環(huán)語句一、while語句在循環(huán)剛開始時(shí),會(huì)計(jì)算一次布爾表達(dá)式的值。而對(duì)于后來每一次額外的循環(huán),都會(huì)在開始前重新計(jì)算一次。當(dāng)布爾表達(dá)式的值為
10、true時(shí),執(zhí)行循環(huán)體部分和迭代部分,然后再判斷布爾表達(dá)式的值。如果布爾表達(dá)式的值為false,則退出循環(huán);否則,重復(fù)上面的過程。第二節(jié) 循環(huán)語句【示例3.7】 為了幫助張浩盡快提高成績(jī),老師給他安排了每天的學(xué)習(xí)任務(wù),其中,上午閱讀教材學(xué)習(xí)理論部分,下午上機(jī)編程掌握代碼部分。老師每天檢查學(xué)習(xí)成果,如果不合格,則繼續(xù)進(jìn)行。第二節(jié) 循環(huán)語句第二節(jié) 循環(huán)語句運(yùn)行代碼及結(jié)果如圖3.11所示。(a) 運(yùn)行代碼(b) 運(yùn)行結(jié)果圖3.3 運(yùn)行代碼及結(jié)果do-while語句的語法格式如下:初始化部分do循環(huán)體部分迭代部分 while(布爾表達(dá)式); /終止部分第二節(jié) 循環(huán)語句二、do-while語句while
11、和do-while唯一的區(qū)別就是do-while肯定會(huì)執(zhí)行一次。也就是說,至少會(huì)將其中的語句“過一遍”即便表達(dá)式第一次計(jì)算為false。而在while循環(huán)語句中,若條件第一次就為false,那么不會(huì)執(zhí)行其中的語句。在實(shí)際應(yīng)用中,while比do-while更常用一些。第二節(jié) 循環(huán)語句第二節(jié) 循環(huán)語句【示例3.8】 經(jīng)過幾天的學(xué)習(xí),老師布置給張浩一道測(cè)試題,讓他先上機(jī)編寫程序,然后老師檢查是否合格。如果不合格,則繼續(xù)編寫。運(yùn)行代碼如圖3.12所示。圖3.12 運(yùn)行代碼for語句是循環(huán)語句中使用最為靈活、最為廣泛的一個(gè)。for語句在第一次反復(fù)之前要進(jìn)行初始化。隨后,它會(huì)進(jìn)行條件測(cè)試,而且在每一次反
12、復(fù)的時(shí)候,進(jìn)行某種形式的“步進(jìn)”(Stepping)。for語句的語法格式如下:for (初始表達(dá)式;布爾表達(dá)式;步進(jìn))循環(huán)體部分無論初始表達(dá)式、布爾表達(dá)式,還是步進(jìn),都可以置空。每次反復(fù)前,都要測(cè)試布爾表達(dá)式。若獲得的結(jié)果是false,就會(huì)繼續(xù)執(zhí)行緊跟在for后面的那行代碼。在每次循環(huán)的末尾,會(huì)計(jì)算一次步進(jìn)。第二節(jié) 循環(huán)語句三、for語句說明:(1) for語句執(zhí)行時(shí),首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。(2) 初始化、終止以及迭代部分都可以為空語句(但分號(hào)不能省),三者均為空的時(shí)候,相當(dāng)于一個(gè)無限
13、循環(huán)。(3) 在初始化部分和迭代部分可以使用逗號(hào)語句來進(jìn)行多個(gè)操作。逗號(hào)語句是用逗號(hào)分隔的語句序列,如:for( i=0,j=10;ij;i+,j-)第二節(jié) 循環(huán)語句第二節(jié) 循環(huán)語句【示例3.9】 循環(huán)輸入某同學(xué)S1結(jié)業(yè)考試的5門課成績(jī),并計(jì)算平均分。運(yùn)行代碼及結(jié)果如圖3.13所示。(a) 運(yùn)行代碼第二節(jié) 循環(huán)語句(b) 運(yùn)行結(jié)果圖3.13 運(yùn)行代碼及結(jié)果第二節(jié) 循環(huán)語句使用for語句時(shí),常見的一些錯(cuò)誤如下:(1) 變量未賦初值,如圖3.14所示的運(yùn)行代碼。圖3.14 運(yùn)行代碼第二節(jié) 循環(huán)語句(2) 缺少循環(huán)條件,造成死循環(huán),如圖3.15所示的運(yùn)行代碼。圖3.15 運(yùn)行代碼第二節(jié) 循環(huán)語句(3
14、) 循環(huán)變量的值無變化,造成死循環(huán),如圖3.16所示的運(yùn)行代碼。圖3.16 運(yùn)行代碼第二節(jié) 循環(huán)語句(4) 表達(dá)式全省略,造成死循環(huán),如圖3.17所示的運(yùn)行代碼及結(jié)果。(a) 運(yùn)行代碼第二節(jié) 循環(huán)語句(b) 運(yùn)行結(jié)果圖3.17 運(yùn)行代碼及結(jié)果綜上所述的循環(huán)語句有while、do-while、for。當(dāng)需要多次重復(fù)執(zhí)行一個(gè)或多個(gè)任務(wù)的問題時(shí)可考慮使用循環(huán)語句來解決。上述三種循環(huán)語句都有四個(gè)必不可少的部分:初始化部分、布爾表達(dá)式、循環(huán)體部分、迭代部分,具體區(qū)別如下:(1) 語法格式不同,如圖3.18所示。第二節(jié) 循環(huán)語句四、循環(huán)語句對(duì)比圖3.17 運(yùn)行代碼及結(jié)果(2) 執(zhí)行順序不同。while語句
15、:先判斷,再執(zhí)行。do-while語句:先執(zhí)行,再判斷。for語句:先判斷,再執(zhí)行。(3) 適用情況不同。循環(huán)次數(shù)確定的情況,通常選用for語句;循環(huán)次數(shù)不確定的情況,通常選用while和do-while語句。第二節(jié) 循環(huán)語句第三節(jié) 跳轉(zhuǎn)語句Java支持三種跳轉(zhuǎn)語句:break,continue和return。這些語句把控制轉(zhuǎn)移到程序的其他部分,下面對(duì)每一種語句進(jìn)行討論。第三節(jié) 跳轉(zhuǎn)語句在switch語句中,break語句用來終止switch語句的執(zhí)行,使程序從switch語句后的第一條語句開始執(zhí)行。break語句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語句處執(zhí)行。第三節(jié) 跳
16、轉(zhuǎn)語句一、break語句break語句的語法格式如下:break 標(biāo)號(hào);break有兩種形式:不帶標(biāo)號(hào)和帶標(biāo)號(hào)。標(biāo)號(hào)必須位于break語句所在的封閉語句塊的開始處。第三節(jié) 跳轉(zhuǎn)語句【示例3.10】 循環(huán)錄入某學(xué)生5門課的成績(jī)并計(jì)算平均分。如果某分?jǐn)?shù)錄入為負(fù),則停止錄入并提示錄入錯(cuò)誤。思路:循環(huán)錄入成績(jī),判斷錄入正確性:錄入錯(cuò)誤,使用break語句立刻跳出循環(huán);否則,累加求和。第三節(jié) 跳轉(zhuǎn)語句運(yùn)行代碼如圖3.19所示。第三節(jié) 跳轉(zhuǎn)語句圖3.19 運(yùn)行代碼continue語句只用于循環(huán)結(jié)構(gòu)中。它的語法格式如下:continue 標(biāo)號(hào);不帶標(biāo)號(hào)的continue語句的作用是終止當(dāng)前循環(huán)結(jié)構(gòu)的本次循環(huán),直接開始下一次循環(huán);帶標(biāo)號(hào)的continue語句的作用是把程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 62680-1-2:2024 EN-FR Universal serial bus interfaces for data and power - Part 1-2: Common components - USB Power Delivery specification
- 2025-2030年中國風(fēng)電場(chǎng)行業(yè)競(jìng)爭(zhēng)現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國非食用植物油行業(yè)發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國雪茄行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年湖北省建筑安全員C證考試(專職安全員)題庫附答案
- 2025-2030年中國砂巖行業(yè)運(yùn)行現(xiàn)狀與發(fā)展策略分析報(bào)告
- 2025年安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 河南職業(yè)技術(shù)學(xué)院《管理科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥職業(yè)技術(shù)學(xué)院《語音信息處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 慶陽職業(yè)技術(shù)學(xué)院《電子商務(wù)網(wǎng)站設(shè)計(jì)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年洛陽市老城區(qū)三年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 2024年02月全國2024中國建設(shè)銀行遠(yuǎn)程智能銀行中心客服代表定向招考筆試歷年參考題庫附帶答案詳解
- 雙線大橋連續(xù)梁剛構(gòu)專項(xiàng)施工方案及方法
- 美容院前臺(tái)接待流程
- 中小學(xué)食堂財(cái)務(wù)培訓(xùn)
- 國藥現(xiàn)代筆試
- 醫(yī)療器械市場(chǎng)部年度規(guī)劃
- 《商務(wù)溝通-策略、方法與案例》課件 第七章 自我溝通
- 按鍵精靈腳本編寫方法
- 節(jié)約集約建設(shè)用地標(biāo)準(zhǔn) DG-TJ08-2422-2023
- 竹簽購銷合同范例
評(píng)論
0/150
提交評(píng)論