不僅僅是表達(dá)式-Java中.ppt_第1頁
不僅僅是表達(dá)式-Java中.ppt_第2頁
不僅僅是表達(dá)式-Java中.ppt_第3頁
不僅僅是表達(dá)式-Java中.ppt_第4頁
不僅僅是表達(dá)式-Java中.ppt_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第7章 不僅僅是表達(dá)式Java中的語句,7.1 程序的結(jié)構(gòu)化設(shè)計(jì) 7.2 具體情況具體分析if判斷語句 7.3 更多的分支選擇switch語句 7.4 懶人的福音循環(huán)語句 7.5 每人執(zhí)行一次for循環(huán)語句 7.6 更方便使用的for each循環(huán) 7.7 while和do-while循環(huán) 7.8 break和continue語句 7.9 當(dāng)一個(gè)不再夠用循環(huán)也可以嵌套 7.10 慧眼識(shí)英才哪種循環(huán)合適你? 7.11 小結(jié) 7.12 習(xí)題,7.1 程序的結(jié)構(gòu)化設(shè)計(jì),7.1.1 順序結(jié)構(gòu)(sequence structure) 7.1.2 選擇結(jié)構(gòu)(selection structure) 7.1

2、.3 循環(huán)結(jié)構(gòu)(iteration structure),7.1.1 順序結(jié)構(gòu)(sequence structure),順序結(jié)構(gòu)是這三種當(dāng)中最簡單的一種。它所表示的僅僅是逐步按照預(yù)先設(shè)定的步驟來完成要做的事情。 流程圖可以讓我們以一種直觀地方式來認(rèn)識(shí)抽象的計(jì)算機(jī)程序。圖7.1中的流程圖所表示的就是順序結(jié)構(gòu)的程序,從圖中可以看到,它總共只有4個(gè)步驟。 圖7.1 順序結(jié)構(gòu)程序設(shè)計(jì)的流程圖,7.1.2 選擇結(jié)構(gòu)(selection structure),所謂的選擇結(jié)構(gòu)就是說在程序的執(zhí)行過程當(dāng)中,會(huì)遇到有“選擇”的情況。針對(duì)不同的情況,不同的條件來作出判斷,然后選擇不同的處理方法。圖7.2 選擇結(jié)構(gòu)程

3、序設(shè)計(jì)的流程圖。 圖7.2,7.1.3 循環(huán)結(jié)構(gòu)(iteration structure),循環(huán)結(jié)構(gòu)是這三個(gè)結(jié)構(gòu)當(dāng)中最為復(fù)雜的一個(gè),它本身包括了前面兩個(gè)程序結(jié)構(gòu)。在這三個(gè)程序設(shè)計(jì)結(jié)構(gòu)中,順序結(jié)構(gòu)是最基礎(chǔ)的一種,也是最簡單,功能最為弱小的。選擇結(jié)構(gòu)為程序的流程帶來了分支,提高了程序設(shè)計(jì)的靈活性。 循環(huán)結(jié)構(gòu)的程序的流程如圖7.3所示。 圖7.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的流程圖,7.2 具體情況具體分析if判斷語句,7.2.1 初識(shí)簡單的if語句 7.2.2 if else語句 7.2.3 多層if 語句的嵌套 7.2.4 一個(gè)if語句的例子,7.2.1 初識(shí)簡單的if語句,if判斷語句的語法結(jié)構(gòu): if

4、 ( 判斷條件 ) 判斷條件為true時(shí)的操作代碼; if判斷語句的流程圖如圖7.5所示。 圖7.5 if判斷語句的流程圖,7.2.2 if else語句,語句的語法: if ( 判斷條件 ) 判斷條件為true時(shí)的操作代碼; else 判斷條件為false時(shí)的操作代碼; 圖7.7中左邊我們給出的是ifelse語句的Java代碼,右側(cè)是這段代碼所對(duì)應(yīng)的流程圖。 圖7.7 ifelse語句及其流程圖,7.2.3 多層if 語句的嵌套,if嵌套結(jié)構(gòu): if ( condition1 ) / STATEMENT1 else if( condition2 ) / STATEMENT2 else if(

5、 condition3 ) / STATEMENT3 else / STATEMENT4 ,這個(gè)嵌套if語句的流程圖如圖7.9所示。 圖7.9 連續(xù)的if語句嵌套程序的流程圖,7.2.4 if語句的例子(1)用Java中的Calendar類來得到年份之后判斷今年是否為閏年(2)對(duì)數(shù)組中每個(gè)學(xué)生的成績劃分好等級(jí),并輸出結(jié)果兩個(gè)例子請(qǐng)參考Example7_1.java。,7.3 更多的分支選擇switch語句,7.3.1 switch語句的語法 7.3.2 switch語句的流程圖 7.3.3 深入了解switch語句 7.3.4 switch語句的例子,7.3.1 switch語句的語法,swi

6、tch語句的語法格式: switch( 選擇表達(dá)式 ) case 選擇值1: 表達(dá)式值等于選擇值1時(shí)要執(zhí)行的程序; break; case 選擇值2: 表達(dá)式值等于選擇值2時(shí)要執(zhí)行的程序; break; case 選擇值3: 表達(dá)式值等于選擇值3時(shí)要執(zhí)行的程序; break; default: 當(dāng)表達(dá)式的值不等于前面所有值時(shí)執(zhí)行的程序; ,7.3.2 switch語句的流程圖,先來看看下面的圖7.10吧,里面是switch語句的一個(gè)流程圖。 這個(gè)流程圖所對(duì)應(yīng)的Java代碼如下所示: switch( expr ) case 1 : STATEMENT1; break; case 2 : STAT

7、EMENT2; break; case 3 : STATEMENT3; break; default: STATEMENT4; ,7.3.3 深入了解switch語句,1選擇表達(dá)式 switch后面括號(hào)中選擇表達(dá)式值的類型為char,byte,short或int。 2switch語句中的break 在switch語句當(dāng)中break其實(shí)是可選的。如果兩個(gè)選擇值之間沒有break語句,那么前一種情況在執(zhí)行完之后Java也不會(huì)從switch語句當(dāng)中跳出來。仍然會(huì)繼續(xù)按照代碼的順序依次執(zhí)行下去,不會(huì)因?yàn)橛龅叫碌倪x擇值而停止。如果switch中沒有出現(xiàn)break語句的話,則Java程序會(huì)從對(duì)應(yīng)選擇值開始

8、一直執(zhí)行到switch的結(jié)束。 3switch語句中的default default的作用也是“斷后”。如果前面所有的選擇值都不等于選擇表達(dá)式的值,則程序會(huì)執(zhí)行default后面的語句。和前面的elseif嵌套結(jié)構(gòu)中最后的else相同,default語句也是可選的。如果沒有default語句,當(dāng)所有選擇值均不匹配選擇表達(dá)式時(shí)Java程序?qū)⑹裁匆膊蛔?,直接跳出switch語句。就像if語句中的條件表達(dá)式值為false一樣。,7.3.4 switch語句的例子前面只一個(gè)switch就說了這么多內(nèi)容,大家可能都看累了也沒徹底搞清楚這個(gè)switch到底有多少需要注意的地方。不過,它的用法還是非常簡單的

9、,我們作為初學(xué)者,最主要的任務(wù)還是把這個(gè)搞清楚。能使用switch語句來解決程序中的問題就可以啦!至于其它的內(nèi)容,大家可以在日后的學(xué)習(xí)和編程工作當(dāng)中自己一邊試一邊慢慢體會(huì),知識(shí)與經(jīng)驗(yàn)都是這么一點(diǎn)一滴積累起來的哦!好啦,也不用多說什么了,來看看我們的例子吧!文件名:Example7_2.java,7.4 懶人的福音循環(huán)語句 7.4.1 我們不需比高斯聰明編程計(jì)算1+2+.+1007.4.2 給我一雙慧眼吧發(fā)現(xiàn)隱藏的循環(huán)規(guī)律,7.4.1 我們不需比高斯聰明編程計(jì)算1+2+.+100,如果我們使用一般的表達(dá)式來計(jì)算這個(gè)結(jié)果需要將表達(dá)式寫成下面這個(gè)樣子: int result = 1 + 2 + 3

10、+ 4 + 5 + + 100; 或者使用累加的運(yùn)算符+=也可以將程序?qū)懗上旅孢@個(gè)形式: int sum = 0; sum += 1; sum += 2; . sum += 100; int result = sum; 圖7.13 直接用Java來計(jì)算1+2+100的代碼量,7.4.2 給我一雙慧眼吧發(fā)現(xiàn)隱藏的循環(huán)規(guī)律,為了讓大家更深地了解如何將重復(fù)的代碼轉(zhuǎn)換為循環(huán)結(jié)構(gòu),我們在圖7.14中將兩種程序的流程圖列了出來??梢詮倪@個(gè)對(duì)比中找出它們的對(duì)應(yīng)情況。 圖7.14,7.5 每人執(zhí)行一次for循環(huán)語句,7.5.1 for循環(huán)語句的語法 7.5.2 for循環(huán)語句的流程圖 7.5.3 for循環(huán)語

11、句的例子,7.5.1 for循環(huán)語句的語法,for循環(huán)語句的語法結(jié)構(gòu): for( 設(shè)置循環(huán)變量初始值; 循環(huán)繼續(xù)執(zhí)行的條件; 改變循環(huán)變量的值 ) 循環(huán)體語句; ,7.5.2 for循環(huán)語句的流程圖,我們在圖7.15中給大家畫了for循環(huán)語句的流程圖。這幅圖表示了一個(gè)非常簡單的for語句在Java程序中的執(zhí)行流程。 圖7.15,7.5.3 for循環(huán)語句的例子,for循環(huán)語句的語法和流程圖都給大家介紹過啦,如果不舉例子說明一下,可能大家理解得不會(huì)太深刻。我們在這個(gè)例子中給大家演示了如何用Java程序中的for循環(huán)語句來實(shí)現(xiàn)計(jì)算從1累加到100,然后輸出計(jì)算的結(jié)果。為了說明Java中for語句的

12、一些特性,我們在例子中一共給出了3種不同形式的for循環(huán)語句的實(shí)現(xiàn)。,7.6 更方便使用的for each循環(huán),1for each語句的語法 for each的語法非常簡單哦,比for語句簡單多啦! for( 對(duì)象類型 對(duì)象名稱 : 對(duì)象的數(shù)組或集合名稱 ) 循環(huán)體語句; 2for each語句的例子 for each在Java中是個(gè)非常簡單的語句,它的語法也不復(fù)雜。我們也不用舉很麻煩的例子,只是給大家看一下分別用for和for each語句遍歷同一個(gè)數(shù)組的代碼就可以啦。在下面的代碼當(dāng)中,首先定義了一個(gè)整型的數(shù)組score,里面保存的是一些整數(shù)。,7.7 while和do-while循環(huán) 7.

13、7.1 while和do-while循環(huán)語句的語法 7.7.2 while和do-while循環(huán)語句的流程圖 7.7.3 while和do-while循環(huán)語句的例子,7.7.1 while和do-while循環(huán)語句的語法,先來看看這兩個(gè)語句的語法格式! /* while循環(huán)語句的語法格式 */ 初始化循環(huán)變量; while( 循環(huán)繼續(xù)條件 ) 循環(huán)體語句; 改變循環(huán)變量的值; /* do-while循環(huán)語句的語法格式 */ 初始化循環(huán)變量; do 循環(huán)體語句; 改變循環(huán)變量的值; while( 循環(huán)繼續(xù)條件 );,7.7.2 while和do-while循環(huán)語句的流程圖,圖7.16 while

14、循環(huán)語句和do-while循環(huán)語句的流程圖,7.7.3 while和do-while循環(huán)語句的例子,在本節(jié)下面的例子當(dāng)中,我們給大家列出了用while和do-while兩個(gè)循環(huán)語句來解決上節(jié)中用for語句來解決的問題計(jì)算從1加到100的結(jié)果。在本節(jié)和前一節(jié)的兩個(gè)例子當(dāng)中,我們用Java中的這三個(gè)循環(huán)語句以不同的方式來做同一件事情,大家可以對(duì)比一下這種不同的實(shí)現(xiàn)方式。同樣這種做法也證明了這三種循環(huán)語句的功能是完全可以相互替換的,只是代碼的形式不同而已。,7.8 break和continue語句,7.8.1 break和continue語句的流程圖 7.8.2 break和continue語句的例

15、子,7.8.1 break和continue語句的流程圖,這兩個(gè)語句也許是Java里面語法最簡單的語句了,所以我們只是略微提一下就可以。它們的語法如下所示: break; / 用于提前終止循環(huán) continue; / 用于結(jié)束當(dāng)前循環(huán)操作,轉(zhuǎn)到下次循環(huán)的開始繼續(xù)執(zhí)行,7.8.2 break和continue語句的例子,雖然這兩個(gè)語句從語法上看著非常簡單,不過,它們在循環(huán)中的作用可不簡單哦!所以我們還是給出個(gè)例子來演示一下它們在Java程序中的功能吧。下面這個(gè)例子中分別用到了break和continue,它們分別用在當(dāng)需要循環(huán)終止或提前結(jié)束當(dāng)前操作的時(shí)候。例子中共有兩個(gè)情況,首先我們判斷一個(gè)數(shù)是

16、否為素?cái)?shù),然后就是用循環(huán)的方式計(jì)算學(xué)生的平均成績,在計(jì)算成績之前將不正確的成績?nèi)サ簟?7.9 當(dāng)一個(gè)不再夠用循環(huán)也可以嵌套,7.9.1 “冒泡”排序與矩陣轉(zhuǎn)置 7.9.2 嵌套循環(huán)的流程圖 7.9.3 嵌套循環(huán)的例子,7.9.1 “冒泡”排序與矩陣轉(zhuǎn)置,在圖7.18中我們圖示了對(duì)一個(gè)包括4個(gè)元素的數(shù)組進(jìn)行從小到大排序的過程。 圖7.18,7.9.2 嵌套循環(huán)的流程圖,此圖為嵌套循環(huán)流程圖,7.9.3 嵌套循環(huán)的例子,循環(huán)本身就不是很簡單的,遇上嵌套的循環(huán),就更復(fù)雜。尤其復(fù)雜在循環(huán)邊界的確定上,也就是“循環(huán)繼續(xù)條件”的判斷上面。這需要有很清晰的邏輯,同時(shí)最好將循環(huán)的邊界情況列出,然后再看在判斷條

17、件的邊界上會(huì)出現(xiàn)什么情況。這在嵌套循環(huán)當(dāng)中一定要非常小心啦,不然弄錯(cuò)了會(huì)出現(xiàn)很意外的結(jié)果哦!好啦,先來看看下面的這個(gè)例子吧!,7.10 慧眼識(shí)英才哪種循環(huán)合適你?,1for語句 for語句適合用在事先可以確定出循環(huán)次數(shù)的情況下,或是當(dāng)遍歷一個(gè)數(shù)組或集合時(shí)。比較典型的for語句是要帶有循環(huán)變量的,這個(gè)變量可以作為坐標(biāo)值或索引值。for循環(huán)是在第一次循環(huán)之前要對(duì)循環(huán)條件檢查的,所以它的循環(huán)體有可能一次都得不到執(zhí)行。 2for each語句 相對(duì)于其它3種循環(huán)語句而言,for each語句的使用范圍比較小,只用于數(shù)組和集合的遍歷。不過,正因?yàn)樗菍iT為這個(gè)用途來設(shè)計(jì)的語法,這使得它的語法簡單易用。我

18、們在遇到對(duì)應(yīng)的情況,推薦大家使用這個(gè)語句來完成任務(wù)。不為別的,就為簡單!,3while語句 while語句用來補(bǔ)充for語句的不足,它主要用在事先并不確定循環(huán)要做多少次的時(shí)候。也可以這么說,它主要用在不是以循環(huán)次數(shù)來判斷循環(huán)是否還要繼續(xù)的情況下。和for循環(huán)相同的是,它也是在循環(huán)開始之前判斷循環(huán)條件。所以循環(huán)體的內(nèi)容有可能一次也得不到執(zhí)行的。while語句還有一個(gè)用處就是用來定義“死循環(huán)”永遠(yuǎn)都不結(jié)束的循環(huán)操作。比如,在程序當(dāng)中要有一個(gè)進(jìn)程不斷地接收鼠標(biāo)和鍵盤的事件。 4do while語句 do while語句是這些循環(huán)語句當(dāng)中唯一的一個(gè)先執(zhí)行循環(huán)體內(nèi)容,然后再判斷循環(huán)條件的循環(huán)語句。所以它的循環(huán)體語句至少要執(zhí)行一次。它while語句相

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論