版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章Java流程控制語(yǔ)句Java程序通過控制語(yǔ)句來執(zhí)行程序流,完成一定的任務(wù)。程序流是由若干個(gè)語(yǔ)句組成的,語(yǔ)句可以是單一的一條語(yǔ)句,也可以是用大括號(hào)括起來的一個(gè)復(fù)合語(yǔ)句。Java中的控制語(yǔ)句有以下幾類: 分支語(yǔ)句:if-else,switch。 循環(huán)語(yǔ)句:while,do-while,for。 與程序轉(zhuǎn)移有關(guān)的跳轉(zhuǎn)語(yǔ)句:break,continue,return。 例外處理語(yǔ)句:try-catch-finally,throw。 注釋語(yǔ)句:/,/* */,/* */。第一節(jié) 分支語(yǔ)句if-else語(yǔ)句的基本形式如下:if (布爾表達(dá)式) /根據(jù)布爾表達(dá)式的真假?zèng)Q定執(zhí)行不同的語(yǔ)句語(yǔ)句序列1 /條
2、件為真else語(yǔ)句序列2 /條件為假第一節(jié) 分之語(yǔ)句1if-else語(yǔ)句其中,布爾表達(dá)式一般為條件表達(dá)式或邏輯表達(dá)式。當(dāng)布爾表達(dá)式的值為true時(shí),執(zhí)行語(yǔ)句序列1;當(dāng)布爾表達(dá)式的值為false時(shí),執(zhí)行語(yǔ)句序列2。第一節(jié) 分之語(yǔ)句第一節(jié) 分之語(yǔ)句(a) 運(yùn)行代碼圖3.1 運(yùn)行代碼及結(jié)果第一節(jié) 分之語(yǔ)句復(fù)雜條件下的if選擇結(jié)構(gòu)如表3.1所示。第一節(jié) 分之語(yǔ)句【示例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é) 分之語(yǔ)句(b) 運(yùn)行結(jié)果圖3.2 運(yùn)行
3、代碼及結(jié)果在實(shí)際處理中,常會(huì)有許多條件需要判斷,因此要用到多個(gè)if,甚至在一個(gè)if中還有多個(gè)if,故稱做嵌套if。第一節(jié) 分之語(yǔ)句2嵌套if語(yǔ)句嵌套if語(yǔ)句的語(yǔ)法格式如下:if (布爾表達(dá)式A)語(yǔ)句序列A if (布爾表達(dá)式B) 語(yǔ)句序列B1 else 語(yǔ)句序列B2 第一節(jié) 分之語(yǔ)句else子句不能單獨(dú)作為語(yǔ)句來使用,它必須和if配對(duì)使用。else總是與離它最近的if配對(duì)??梢允褂么罄ㄌ?hào)來改變if-else的配對(duì)關(guān)系。第一節(jié) 分之語(yǔ)句第一節(jié) 分之語(yǔ)句【示例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語(yǔ)句。if-else if-else語(yǔ)句的語(yǔ)法格式如下:if (布爾表達(dá)式1)語(yǔ)句序列1else if (布爾表達(dá)式2)語(yǔ)句序列2第一節(jié) 分之語(yǔ)句3if-else if-else語(yǔ)句else if (布爾表達(dá)式N)語(yǔ)句序列Nelse 語(yǔ)句序列M第一節(jié) 分之語(yǔ)句3if-else if-else語(yǔ)句程序執(zhí)行時(shí),首先判斷布爾表達(dá)式1的值,若為真,則順序執(zhí)行語(yǔ)句序列1,if語(yǔ)句結(jié)束;若為假,則判斷布爾表達(dá)式2的值,布爾表達(dá)式2的值若為真,則順序執(zhí)行語(yǔ)句序列2,if語(yǔ)句結(jié)束;布爾表達(dá)式2的值若為假,則判斷布爾表達(dá)式3的值
5、若所有的布爾表達(dá)式的值都為假,則執(zhí)行語(yǔ)句序列M,if語(yǔ)句結(jié)束。第一節(jié) 分之語(yǔ)句第一節(jié) 分之語(yǔ)句【示例3.4】 我想買車,買什么車決定于我在銀行有多少存款。如果我的存款超過500萬,我就買凱迪拉克;否則,如果我的存款超過100萬,我就買帕薩特;否則,如果我的存款超過50萬,我就買伊蘭特;否則,如果我的存款超過10萬,我就買奧拓;否則,我買捷安特。第一節(jié) 分之語(yǔ)句運(yùn)行代碼如圖3.4所示。圖3.4 運(yùn)行代碼第一節(jié) 分之語(yǔ)句嵌套if選擇結(jié)構(gòu)如下:if(條件1) if(條件2) 代碼塊1 else 代碼塊2 else 代碼塊3第一節(jié) 分之語(yǔ)句【示例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語(yǔ)句中,布爾表達(dá)式的值只有兩種:true和false。若情況更多時(shí),就需要另外一種可提供更多選擇的語(yǔ)句:switch語(yǔ)句。第一節(jié) 分之語(yǔ)句二、switch語(yǔ)句case常量N : 語(yǔ)句序列N;break;default:語(yǔ)句序列M;break;第一節(jié) 分之語(yǔ)句說明:(1) 表達(dá)式的類型可以為byte、short、int、char。多分支語(yǔ)句把表達(dá)式的值與每個(gè)case子句中的常量進(jìn)行對(duì)比,如果匹配成功,則執(zhí)行該case子句后面的語(yǔ)句序列。(2) ca
7、se子句中的“常量N”必須是常量,而且所有case子句中的常量應(yīng)是不同的。(3) default子句是可選的。(4) break語(yǔ)句執(zhí)行完一個(gè)case分支后,使程序跳出switch語(yǔ)句,即終止switch語(yǔ)句的執(zhí)行。在一些特殊情況下,多個(gè)不同的case值要執(zhí)行一組相同的操作,這時(shí)可以不用break。第一節(jié) 分之語(yǔ)句【示例3.6】 韓嫣參加計(jì)算機(jī)編程大賽,如果獲得第一名,將參加麻省理工大學(xué)組織的1個(gè)月夏令營(yíng);如果獲得第二名,將獎(jiǎng)勵(lì)惠普筆記本電腦一部;如果獲得第三名,將獎(jiǎng)勵(lì)移動(dòng)硬盤一個(gè);否則,沒有任何獎(jiǎng)勵(lì)。第一節(jié) 分之語(yǔ)句第一節(jié) 分之語(yǔ)句運(yùn)行代碼如圖3.6所示。圖3.6 運(yùn)行代碼第一節(jié) 分之語(yǔ)句使
8、用switch語(yǔ)句時(shí),常見的一些錯(cuò)誤如下:(1) case分支后忘記寫break,如圖3.7所示的運(yùn)行代碼及輸出結(jié)果。圖3.7 運(yùn)行代碼及輸出結(jié)果第一節(jié) 分之語(yǔ)句(2) case子句的常量相同,如圖3.8所示的運(yùn)行代碼。圖3.8 運(yùn)行代碼第一節(jié) 分之語(yǔ)句(3) default沒有放在末尾,如圖3.9所示的運(yùn)行代碼及輸出結(jié)果。圖3.9 運(yùn)行代碼及輸出結(jié)果第一節(jié) 分之語(yǔ)句(4) switch表達(dá)式的值不是整型或字符型,如圖3.10所示的運(yùn)行代碼。圖3.10 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句循環(huán)語(yǔ)句的作用是反復(fù)執(zhí)行一段語(yǔ)句序列,直到滿足終止循環(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í)行的一段語(yǔ)句序列,可以是一個(gè)單一語(yǔ)句,也可以是一個(gè)復(fù)合語(yǔ)句。(4) 迭代部分:在當(dāng)前循環(huán)結(jié)束,下一次循環(huán)開始執(zhí)行之前執(zhí)行的語(yǔ)句,常常用來更新影響終止條件的變量,使循環(huán)最終結(jié)束。第二節(jié) 循環(huán)語(yǔ)句while語(yǔ)句的語(yǔ)法格式如下:初始化部分while(布爾表達(dá)式) /終止部分 循環(huán)體部分 迭代部分第二節(jié) 循環(huán)語(yǔ)句一、while語(yǔ)句在循環(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)語(yǔ)句【示例3.7】 為了幫助張浩盡快提高成績(jī),老師給他安排了每天的學(xué)習(xí)任務(wù),其中,上午閱讀教材學(xué)習(xí)理論部分,下午上機(jī)編程掌握代碼部分。老師每天檢查學(xué)習(xí)成果,如果不合格,則繼續(xù)進(jìn)行。第二節(jié) 循環(huán)語(yǔ)句第二節(jié) 循環(huán)語(yǔ)句運(yùn)行代碼及結(jié)果如圖3.11所示。(a) 運(yùn)行代碼(b) 運(yùn)行結(jié)果圖3.3 運(yùn)行代碼及結(jié)果do-while語(yǔ)句的語(yǔ)法格式如下:初始化部分do循環(huán)體部分迭代部分 while(布爾表達(dá)式); /終止部分第二節(jié) 循環(huán)語(yǔ)句二、do-while語(yǔ)句while
11、和do-while唯一的區(qū)別就是do-while肯定會(huì)執(zhí)行一次。也就是說,至少會(huì)將其中的語(yǔ)句“過一遍”即便表達(dá)式第一次計(jì)算為false。而在while循環(huán)語(yǔ)句中,若條件第一次就為false,那么不會(huì)執(zhí)行其中的語(yǔ)句。在實(shí)際應(yīng)用中,while比do-while更常用一些。第二節(jié) 循環(huán)語(yǔ)句第二節(jié) 循環(huán)語(yǔ)句【示例3.8】 經(jīng)過幾天的學(xué)習(xí),老師布置給張浩一道測(cè)試題,讓他先上機(jī)編寫程序,然后老師檢查是否合格。如果不合格,則繼續(xù)編寫。運(yùn)行代碼如圖3.12所示。圖3.12 運(yùn)行代碼for語(yǔ)句是循環(huán)語(yǔ)句中使用最為靈活、最為廣泛的一個(gè)。for語(yǔ)句在第一次反復(fù)之前要進(jìn)行初始化。隨后,它會(huì)進(jìn)行條件測(cè)試,而且在每一次反
12、復(fù)的時(shí)候,進(jìn)行某種形式的“步進(jìn)”(Stepping)。for語(yǔ)句的語(yǔ)法格式如下: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)語(yǔ)句三、for語(yǔ)句說明:(1) for語(yǔ)句執(zhí)行時(shí),首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語(yǔ)句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。(2) 初始化、終止以及迭代部分都可以為空語(yǔ)句(但分號(hào)不能省),三者均為空的時(shí)候,相當(dāng)于一個(gè)無限
13、循環(huán)。(3) 在初始化部分和迭代部分可以使用逗號(hào)語(yǔ)句來進(jìn)行多個(gè)操作。逗號(hào)語(yǔ)句是用逗號(hào)分隔的語(yǔ)句序列,如:for( i=0,j=10;ij;i+,j-)第二節(jié) 循環(huán)語(yǔ)句第二節(jié) 循環(huán)語(yǔ)句【示例3.9】 循環(huán)輸入某同學(xué)S1結(jié)業(yè)考試的5門課成績(jī),并計(jì)算平均分。運(yùn)行代碼及結(jié)果如圖3.13所示。(a) 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句(b) 運(yùn)行結(jié)果圖3.13 運(yùn)行代碼及結(jié)果第二節(jié) 循環(huán)語(yǔ)句使用for語(yǔ)句時(shí),常見的一些錯(cuò)誤如下:(1) 變量未賦初值,如圖3.14所示的運(yùn)行代碼。圖3.14 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句(2) 缺少循環(huán)條件,造成死循環(huán),如圖3.15所示的運(yùn)行代碼。圖3.15 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句(3
14、) 循環(huán)變量的值無變化,造成死循環(huán),如圖3.16所示的運(yùn)行代碼。圖3.16 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句(4) 表達(dá)式全省略,造成死循環(huán),如圖3.17所示的運(yùn)行代碼及結(jié)果。(a) 運(yùn)行代碼第二節(jié) 循環(huán)語(yǔ)句(b) 運(yùn)行結(jié)果圖3.17 運(yùn)行代碼及結(jié)果綜上所述的循環(huán)語(yǔ)句有while、do-while、for。當(dāng)需要多次重復(fù)執(zhí)行一個(gè)或多個(gè)任務(wù)的問題時(shí)可考慮使用循環(huán)語(yǔ)句來解決。上述三種循環(huán)語(yǔ)句都有四個(gè)必不可少的部分:初始化部分、布爾表達(dá)式、循環(huán)體部分、迭代部分,具體區(qū)別如下:(1) 語(yǔ)法格式不同,如圖3.18所示。第二節(jié) 循環(huán)語(yǔ)句四、循環(huán)語(yǔ)句對(duì)比圖3.17 運(yùn)行代碼及結(jié)果(2) 執(zhí)行順序不同。while語(yǔ)句
15、:先判斷,再執(zhí)行。do-while語(yǔ)句:先執(zhí)行,再判斷。for語(yǔ)句:先判斷,再執(zhí)行。(3) 適用情況不同。循環(huán)次數(shù)確定的情況,通常選用for語(yǔ)句;循環(huán)次數(shù)不確定的情況,通常選用while和do-while語(yǔ)句。第二節(jié) 循環(huán)語(yǔ)句第三節(jié) 跳轉(zhuǎn)語(yǔ)句Java支持三種跳轉(zhuǎn)語(yǔ)句:break,continue和return。這些語(yǔ)句把控制轉(zhuǎn)移到程序的其他部分,下面對(duì)每一種語(yǔ)句進(jìn)行討論。第三節(jié) 跳轉(zhuǎn)語(yǔ)句在switch語(yǔ)句中,break語(yǔ)句用來終止switch語(yǔ)句的執(zhí)行,使程序從switch語(yǔ)句后的第一條語(yǔ)句開始執(zhí)行。break語(yǔ)句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語(yǔ)句處執(zhí)行。第三節(jié) 跳
16、轉(zhuǎn)語(yǔ)句一、break語(yǔ)句break語(yǔ)句的語(yǔ)法格式如下:break 標(biāo)號(hào);break有兩種形式:不帶標(biāo)號(hào)和帶標(biāo)號(hào)。標(biāo)號(hào)必須位于break語(yǔ)句所在的封閉語(yǔ)句塊的開始處。第三節(jié) 跳轉(zhuǎn)語(yǔ)句【示例3.10】 循環(huán)錄入某學(xué)生5門課的成績(jī)并計(jì)算平均分。如果某分?jǐn)?shù)錄入為負(fù),則停止錄入并提示錄入錯(cuò)誤。思路:循環(huán)錄入成績(jī),判斷錄入正確性:錄入錯(cuò)誤,使用break語(yǔ)句立刻跳出循環(huán);否則,累加求和。第三節(jié) 跳轉(zhuǎn)語(yǔ)句運(yùn)行代碼如圖3.19所示。第三節(jié) 跳轉(zhuǎn)語(yǔ)句圖3.19 運(yùn)行代碼continue語(yǔ)句只用于循環(huán)結(jié)構(gòu)中。它的語(yǔ)法格式如下:continue 標(biāo)號(hào);不帶標(biāo)號(hào)的continue語(yǔ)句的作用是終止當(dāng)前循環(huán)結(jié)構(gòu)的本次循環(huán),直接開始下一次循環(huán);帶標(biāo)號(hào)的continue語(yǔ)句的作用是把程
溫馨提示
- 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版兒童托管所合伙人經(jīng)營(yíng)管理協(xié)議示范文本3篇
- 二零二五版新能源汽車電池回收利用服務(wù)協(xié)議4篇
- 二零二五年度打樁工程信息化管理合同規(guī)范范本3篇
- 2025年鮮蛋電商運(yùn)營(yíng)與數(shù)據(jù)分析合作協(xié)議3篇
- 二零二五年礦山承包經(jīng)營(yíng)資源節(jié)約利用協(xié)議3篇
- 2025年度煤礦企業(yè)員工勞動(dòng)合同范本(含加班補(bǔ)貼計(jì)算標(biāo)準(zhǔn))4篇
- 基于二零二五年度技術(shù)的香港電子合同制造成本降低協(xié)議3篇
- 個(gè)人電商運(yùn)營(yíng)服務(wù)合同2024年度3篇
- erp合同管理系統(tǒng)
- 2025年度無人機(jī)精準(zhǔn)定位服務(wù)采購(gòu)合同文本3篇
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評(píng)標(biāo)數(shù)字見證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 江蘇省無錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語(yǔ)版:中國(guó)文化概論之中國(guó)的傳統(tǒng)節(jié)日
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護(hù)理匯報(bào)
- 2024年全國(guó)統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)四 引起受眾傳播內(nèi)容要素的掌控
- 繪本《汪汪的生日派對(duì)》
- 助產(chǎn)護(hù)理畢業(yè)論文
評(píng)論
0/150
提交評(píng)論