Java語言程序設(shè)計-程序流程控制_第1頁
Java語言程序設(shè)計-程序流程控制_第2頁
Java語言程序設(shè)計-程序流程控制_第3頁
Java語言程序設(shè)計-程序流程控制_第4頁
Java語言程序設(shè)計-程序流程控制_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java語言程序設(shè)計第3章 程序流程控制3.1 語句及語句塊3.2 分支結(jié)構(gòu)3.3 循環(huán)結(jié)構(gòu)3.4 案例實踐1:簡單人機交互3.1 語句及語句塊語句(Statement)相當于自然語言中的句子,是程序的基本執(zhí)行單元。1. 表達式語句:表達式后跟一個分號 。這些表達式包括: 賦值表達式,如“i = 3;”。 自增或自減表達式,如“i+;”、“-i;”。 方法調(diào)用,如“System.out.println(“Hi”);”。 創(chuàng)建對象,如“new Integer(10);”。2. 聲明性語句:變量聲明后跟一個分號,如“char ch;”、“int a=1;”。3. 流程控制語句:用以控制程序執(zhí)行流程

2、的語句,如下節(jié)的if語句。4. 空語句:只有一個分號的語句。3.1 語句及語句塊有時需要將連續(xù)的多條語句當做一個整體以一對花括號括起來,這些語句連同花括號一起被稱為語句塊(Block),有時也稱為復合語句。1. 語句塊可以不包含任何語句,此時稱為空語句塊(注意與空語句的區(qū)別)。2. 可以在語句塊內(nèi)聲明變量,但該變量只在語句塊內(nèi)部有效。3. 語句塊內(nèi)部聲明的變量不能與之前外部聲明的變量重名(這與C/C+不一致)。4. 在語句塊內(nèi)部可以訪問之前在外部聲明的變量。5. 語句塊可以嵌套,并列的多個語句塊內(nèi)部可以聲明重名的變量。3.1 語句及語句塊3.2 分支結(jié)構(gòu)if語句1. 條件對應表達式的值必須是b

3、oolean類型(與C/C+不同)。2. if關(guān)鍵字與條件組成的行并不是語句,它們連同其后的語句或語句塊一起才構(gòu)成了一個完整的語句,即if語句。3. 若要讓if控制多條語句,這些語句必須被置于一對花括號中以構(gòu)成語句塊,否則if只控制其后的第1條語句 ,而后面的語句并不受if控制。3.2 分支結(jié)構(gòu)if語句4. 不要在右圓括號后加分號。若加了,并不會出現(xiàn)語法錯誤,但此時if控制的是一條空語句,而原本想控制的語句或語句塊則不受if控制。5. if控制的語句應盡量采取縮進形式 ,以提高代碼的可讀性。具體做法是:受控語句行相對于if關(guān)鍵字的所在列向右縮進4個或8個空格,屬于同一級別的語句行應對齊。此外,

4、語句塊的起始花括號可以放在if起始行的最后(通常采用這種風格),也可以單獨占一行,但結(jié)束花括號最好單獨占一行。3.2 分支結(jié)構(gòu)if語句3.2 分支結(jié)構(gòu)if-else語句1. 語句或語句塊A和B二者是互斥的,即必有且僅有一個被執(zhí)行。2. else之前必須有與其匹配的if,前者不能單獨出現(xiàn)。3. if與else之間若有多條語句,則必須置于一對花括號中,否則視為語法錯誤。3.2 分支結(jié)構(gòu)if-else語句3.2 分支結(jié)構(gòu)if及if-else的嵌套與C語言一樣else總是與之前最近的、未被匹配的if相匹配,即上述兩種理解方式的后一種。也可以這樣看:第2 5行是一個完整的if-else語句,其受第1行的

5、if控制。3.2 分支結(jié)構(gòu)if及if-else的嵌套為提高代碼的可讀性,編程者應盡量使用花括號顯式標識出if和else各自控制的語句。【例3.4】if及if-else語句的嵌套演示。3.2 分支結(jié)構(gòu)switch語句switch語句是一種多分支語句?!纠?.5】switch語句演示。3.3 循環(huán)結(jié)構(gòu)while語句1. 被重復執(zhí)行的語句或語句塊稱為循環(huán)體(Loop Body)。2. 條件決定著是否執(zhí)行循環(huán)體,因此也稱為循環(huán)條件,其對應的表達式的值必須是boolean類型。3. 因先判斷條件,再決定是否執(zhí)行循環(huán)體。故while語句的循環(huán)體可能一次都不執(zhí)行。4. 進入循環(huán)前,通常要為相應的變量賦以合適

6、的初值,這稱為循環(huán)條件的初始化。3.3 循環(huán)結(jié)構(gòu)while語句5. 通常不應在右圓括號后加分號。若加了,并不會出現(xiàn)語法錯誤,但此時循環(huán)體是一條空語句,而原本想作為循環(huán)體的語句或語句塊則不受while控制,這很可能導致while語句陷入無限循環(huán)(也稱死循環(huán))而無法結(jié)束。6. 為防止陷入死循環(huán),循環(huán)體中應包含使循環(huán)條件趨于不成立的語句。上述說明也適用于后述的2種循環(huán)。3.3 循環(huán)結(jié)構(gòu)while語句3.3 循環(huán)結(jié)構(gòu)while語句3.3 循環(huán)結(jié)構(gòu)do-while語句1. 與while語句不同的是,do-while語句先執(zhí)行循環(huán)體再判斷循環(huán)條件,因此,do-while語句的循環(huán)體至少要執(zhí)行一次。2. 若

7、循環(huán)體含有多條語句,則必須置于一對花括號中,否則視為語法錯誤。3. 右圓括號后的分號不能省略,以構(gòu)成do-while語句。4. 讀者應該牢記C/C+和Java中所有的循環(huán)均是在循環(huán)條件成立時才重復執(zhí)行循環(huán)體。3.3 循環(huán)結(jié)構(gòu)do-while語句3.3 循環(huán)結(jié)構(gòu)for語句1. 表達式1執(zhí)行且僅執(zhí)行一次,通常用于循環(huán)條件的初始化,如i=1。2. 循環(huán)體是否繼續(xù)執(zhí)行取決于表達式2是否成立,因此for語句的循環(huán)體可能一次都不執(zhí)行。與while和do-while語句的循環(huán)條件一樣,表達式2的值必須是boolean型,如i10。3. 表達式3在每次執(zhí)行完循環(huán)體之后執(zhí)行,通常用于修改循環(huán)條件,如i+。4.

8、表達式1和2分別指定了循環(huán)條件的起始和結(jié)束邊界,因此,for語句較適合于循環(huán)次數(shù)能預先確定的場合。3.3 循環(huán)結(jié)構(gòu)for語句5. 可以在表達式1中聲明變量,該變量只在for語句內(nèi)有效,如:6. 表達式2、3中可以用逗號分隔多個表達式,以方便初始化和修改多個用以控制循環(huán)的變量,如:7. 與while語句類似,通常不應在右圓括號后加分號,否則可能導致無限循環(huán)。3.3 循環(huán)結(jié)構(gòu)for語句3.3 循環(huán)結(jié)構(gòu)for語句for語句的3個表達式均可以省略,但分號不能省。為了使程序的執(zhí)行邏輯與省略前一致,需要在合適位置添加相應的代碼。1. 省略表達式13.3 循環(huán)結(jié)構(gòu)for語句2. 省略表達式23. 省略表達式

9、33.3 循環(huán)結(jié)構(gòu)break與continue語句可以使用break或continue語句結(jié)束循環(huán)。1. break語句break語句還可以出現(xiàn)在循環(huán)語句中,其作用是結(jié)束break語句所在的那一層循環(huán)(循環(huán)可以嵌套),并繼續(xù)執(zhí)行該層循環(huán)之后的代碼。 3.3 循環(huán)結(jié)構(gòu)break與continue語句2. continue語句continue語句只能出現(xiàn)在循環(huán)語句中,其作用是結(jié)束本次循環(huán),并繼續(xù)執(zhí)行下一次循環(huán)。3.3 循環(huán)結(jié)構(gòu)循環(huán)的嵌套是指某個循環(huán)語句的循環(huán)體又包含循環(huán)語句,前者稱為外層循環(huán),后者稱為內(nèi)層循環(huán)。1. 可將內(nèi)層循環(huán)視為普通語句,其作為外層循環(huán)的循環(huán)體要執(zhí)行多次。2. 每次進入內(nèi)層循環(huán)

10、之前,應注意重新初始化內(nèi)層循環(huán)的循環(huán)條件。3. 需要注意,盡管Java對循環(huán)嵌套的層數(shù)沒有限制,但盡量不要超過3層,否則會使代碼難以閱讀?!纠?.12】求解百馬百擔問題?!纠?.13】計算整數(shù)的所有素數(shù)因子,如:90=2*3*3*5。3.3 循環(huán)結(jié)構(gòu)帶標號的break與continue語句有時,可能需要結(jié)束或繼續(xù)外面某一層的循環(huán),此時可以使用帶標號的break和continue語句。標號(Label)是指用以標記循環(huán)語句起始行的合法標識符 ,其后跟一個冒號。帶標號的break語句用以結(jié)束標號所標記的那層循環(huán)。帶標號的continue語句用以結(jié)束標號所標記的那一層循環(huán)的本次循環(huán),并繼續(xù)執(zhí)行該層的下一次循環(huán)。Jav

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論