Java語言程序設(shè)計(jì)實(shí)用教程第四講控制結(jié)構(gòu)_第1頁
Java語言程序設(shè)計(jì)實(shí)用教程第四講控制結(jié)構(gòu)_第2頁
Java語言程序設(shè)計(jì)實(shí)用教程第四講控制結(jié)構(gòu)_第3頁
Java語言程序設(shè)計(jì)實(shí)用教程第四講控制結(jié)構(gòu)_第4頁
Java語言程序設(shè)計(jì)實(shí)用教程第四講控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java語言程序設(shè)計(jì)實(shí)用教程第四講 控制結(jié)構(gòu)3本章學(xué)習(xí)要點(diǎn):掌握分支語句的運(yùn)用掌握循環(huán)語句的運(yùn)用理解Java中的異常處理掌握J(rèn)ava中的程序邏輯表示 4.1 分支條件語句if ( 條件表達(dá)式 )語句塊;else語句塊; 多重嵌套的if語句if (條件1) 語句塊1;else if (條件2)語句塊2;else if (條件3)else語句塊n;switch 開關(guān)語句switch(表達(dá)式)case 判斷值1:語句組1 ;case 判斷值2:語句組2 break ;default:語句組n; switch 的常量和表達(dá)式可以是整型、字符型及byte型任何兩個(gè)case常量不可以有相同的值。只能對(duì)等式

2、進(jìn)行測(cè)試,根據(jù)表達(dá)式取值的不同轉(zhuǎn)向不同的分支。每個(gè)case分支中的語句塊無須用花括號(hào)括起來。每個(gè)case分支都只是入口點(diǎn)break 語句是轉(zhuǎn)移語句(轉(zhuǎn)出switch)4.2 循環(huán)循環(huán)語句while(表達(dá)式) do語句組; 語句組; while(表達(dá)式);for ( 表達(dá)式1;表達(dá)式2;表達(dá)式3)語句組;表達(dá)式1:循環(huán)變量賦初值,可使用外部沒有定義的循環(huán)變量表達(dá)式2:循環(huán)條件表達(dá)式3:循環(huán)變量修正轉(zhuǎn)移語句(一)沒有g(shù)oto語句break 從一個(gè)封閉的語句,如switch 循環(huán)中跳出來break 標(biāo)號(hào)從包含本break語句的標(biāo)號(hào)指示的封閉語句中跳出來。 while (e1) lable1: whi

3、le (e1) while(e2) while(e2) break; break lable1; 轉(zhuǎn)移語句(二)continue (用在循環(huán)體中)提前結(jié)束本次循環(huán),即跳過后面的循環(huán)體語句,回到循環(huán)的條件測(cè)試部分繼續(xù)執(zhí)行。continue 標(biāo)號(hào)提前結(jié)束標(biāo)號(hào)所指循環(huán)。通常是某外層循環(huán)。continue不是goto 語句,標(biāo)號(hào)不能指向與本循環(huán)并列的循環(huán)或其他循環(huán),也不可指向非循環(huán)語句。4.3 異常異常處理基本概念早期的編程語言(比如C語言)沒有異常處理,通常是遇到錯(cuò)誤返回一個(gè)特殊的值或設(shè)定一個(gè)標(biāo)志,并以此判斷是不是有錯(cuò)誤產(chǎn)生。隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,這種錯(cuò)誤處理已經(jīng)成為創(chuàng)建大型可維護(hù)程序的障礙了。于

4、是在一些語言中出現(xiàn)了異常處理機(jī)制,比如在Basic中的異常處理語句“on error goto”,而Java則在C+基礎(chǔ)上建立了新的異常處理機(jī)制。Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。這種機(jī)制為復(fù)雜程序提供了強(qiáng)有力的控制方式。同時(shí)這些異常代碼與“常規(guī)”代碼分離,增強(qiáng)了程序的可讀性,編寫程序時(shí)也顯得更靈活。異常處理的作用程序在運(yùn)行時(shí)出現(xiàn)錯(cuò)誤即產(chǎn)生異??偸怯锌赡馨l(fā)生的,如果我們置之不理,程序就有可能非正常終止,并可能導(dǎo)致嚴(yán)重問題。但現(xiàn)在,我們可以使用Java的異常處理機(jī)制來處理運(yùn)行時(shí)錯(cuò)誤,防止程序非正常終止,使程序繼續(xù)順利執(zhí)行,從而達(dá)到開發(fā)出比較健壯

5、的程序的目的,這就是異常的應(yīng)用。另外,我們也可通過使用異常類獲取關(guān)于程序錯(cuò)誤的信息,進(jìn)而消除由異常引起的問題。 使用try-catch-finally進(jìn)行異常處理語句格式trystatements /可能產(chǎn)生異常的程序代碼catch(ExceptionType1 e) /ExceptionType1類型異常的catch子句statements /出現(xiàn)ExceptionType1類型異常時(shí)的處理程序catch(ExceptionType2 e) / ExceptionType1類型異常的catch子句statements /出現(xiàn)ExceptionType1類型異常時(shí)的處理程序finallysta

6、tements /異常處理程序結(jié)構(gòu)的統(tǒng)一出口異常結(jié)構(gòu)的執(zhí)行流程在異常的捕獲處理時(shí),程序塊的執(zhí)行是非連續(xù)的,為了確保不管異常發(fā)生與否,有些代碼都能得到執(zhí)行,可以使用finally語句。使用多catch語句時(shí)的注意事項(xiàng)若使用多個(gè)catch,catch捕獲的異常應(yīng)遵循這樣的原則:catch子句應(yīng)按先子類異常再父類異常的順序排列,否則,子類異常將被父類異常對(duì)應(yīng)的catch從句所捕獲。Java中的異常類在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類或其它子類的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。 Throwa

7、ble類有兩個(gè)標(biāo)準(zhǔn)子類:java.lang.Error和java.lang.ExceptionError類一般是指虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰、虛擬機(jī)出錯(cuò)誤、動(dòng)態(tài)鏈接失敗等,這一類錯(cuò)誤無法恢復(fù)或不可能捕獲,將導(dǎo)致應(yīng)用程序中斷。異常Exception類則是指一些可以被捕獲且可能恢復(fù)的異常情況一個(gè)簡(jiǎn)單的例子public class Demoexcppublic static void main(String args)int a = 0;int b = 20;int c = b/a;該程序當(dāng)運(yùn)行到int c = b/a時(shí),會(huì)拋出一個(gè)異常,程序流將會(huì)在此處被打斷,在這個(gè)例子中我們并沒有捕獲這個(gè)異常,

8、所以java默認(rèn)的異常處理器就發(fā)揮作用了。缺省的處理器打印Exception的字符值和發(fā)生“異常”的地點(diǎn)。 捕獲程序的異常通常我們希望自己來處理“異常”并繼續(xù)運(yùn)行。可以用try來指定一塊預(yù)防所有“異?!钡牡某绦?。緊跟在try程序后面,應(yīng)包含一個(gè)catch子句來指定你想要捕捉的“異?!钡念愋汀ublic class Demoexcppublic static void main(String args)int a = 0;int b = 20;tryint c = b/a;catch(ArithmeticException e)System.out.println(被除數(shù)不能為零);拋出自己的

9、異常throw語句用來明確地拋出一個(gè)“異?!?。throw 關(guān)鍵字后面跟著我們要拋出的異常。這個(gè)異常可以使我們自己新建的,或者是通過catch捕獲到的public class ThrowDemopublic static void main(String args)trythrow new ArithmeticException(hello);catch(ArithmeticException e)System.out.println(被除數(shù)不能為零);函數(shù)拋出異常throws用來標(biāo)明一個(gè)成員函數(shù)可能拋出的各種“異常”。如果你想明確地拋出一個(gè)RuntimeException,你必須用throws

10、語句來聲明它的類型。public class ThrowsDemopublic static int mythrow(int first,int second) throws ArithmeticExceptionint c = first/second;return c;public static void main(String args)int d;tryd = mythrow(20,0);catch(ArithmeticException e)System.out.println(算術(shù)錯(cuò)誤,被除數(shù)不能為零);Finally字句當(dāng)一個(gè)“異?!北粧伋鰰r(shí),程序的執(zhí)行就不再是線性的,跳過某些行

11、,甚至?xí)捎跊]有與之匹配的catch子句而過早地返回。有時(shí)確保一段代碼不管發(fā)生什么“異?!倍急粓?zhí)行到是必要的,關(guān)鍵詞finally就是用來標(biāo)識(shí)這樣一段代碼的。即使沒有catch子句,finally程序塊也會(huì)在執(zhí)行try程序塊后的程序前執(zhí)行。每個(gè)try語句都需要至少一個(gè)與之相配的catch子句或finally子句 。通常finally子句都用來做一些必須要做的事情,例如關(guān)閉打開的文件,釋放數(shù)據(jù)庫連接等。Finally實(shí)例import java.io.*;public class Untitled1 public static void main(String args) PrintWriter

12、out = null; try out = new PrintWriter(new BufferedWriter(new FileWriter(D:test.txt); out.println(hello); out.flush(); catch (IOException ex) System.out.println(IOException while open file); finally out.close(); Java異常處理總結(jié)總之,“異常”指的是程序運(yùn)行時(shí)出現(xiàn)的非正常情況。在“異常”類層次的最上層的類叫Throwable,它有兩個(gè)直接的子類:Exception和Error。Java的“異?!碧幚硗ㄟ^5個(gè)關(guān)鍵詞來實(shí)現(xiàn):try,catch,throw,throws和finally。try.catch(.).finally().publlic type function() throws Exception1,Exception2.4.4 控制流程程序框圖程序框圖(也稱為流程圖)是最常用的一種表示法,它是描述計(jì)算機(jī)一步一步完成任務(wù)的圖表,直觀地描述程序執(zhí)行的控制流程,最便于初學(xué)者掌握。終端框 處理框 輸入框判斷框流程線常用流程圖符號(hào)(詳細(xì)參閱P74)表示一個(gè)算法的起始和結(jié)束表示一個(gè)算法輸入信息判斷某一條件是否成立,成立時(shí)在出口處標(biāo)明“

溫馨提示

  • 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)論