第3章選擇結(jié)構(gòu)程序設(shè)計_第1頁
第3章選擇結(jié)構(gòu)程序設(shè)計_第2頁
第3章選擇結(jié)構(gòu)程序設(shè)計_第3頁
第3章選擇結(jié)構(gòu)程序設(shè)計_第4頁
第3章選擇結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 選擇結(jié)構(gòu)程序設(shè)計Java程序設(shè)計程序設(shè)計2學(xué)習(xí)目標(biāo)l 本章介紹選擇結(jié)構(gòu)的程序設(shè)計方法及本章介紹選擇結(jié)構(gòu)的程序設(shè)計方法及Java語言提供語言提供實現(xiàn)選擇結(jié)構(gòu)實現(xiàn)選擇結(jié)構(gòu)if語句和語句和switch語句的語法及使用方法。語句的語法及使用方法。l 順序結(jié)構(gòu)的各語句按照在程序中的排列順序自上而順序結(jié)構(gòu)的各語句按照在程序中的排列順序自上而下依次執(zhí)行,執(zhí)行完一條語句自動執(zhí)行下一條語句下依次執(zhí)行,執(zhí)行完一條語句自動執(zhí)行下一條語句,這是最簡單的程序結(jié)構(gòu)。,這是最簡單的程序結(jié)構(gòu)。l 實際程序設(shè)計過程中,更多的情況是需要根據(jù)某個實際程序設(shè)計過程中,更多的情況是需要根據(jù)某個條件是否成立決定某些語句能否執(zhí)行,

2、或者從給定條件是否成立決定某些語句能否執(zhí)行,或者從給定的兩種或多種語句中選擇其一來執(zhí)行,這是選擇結(jié)的兩種或多種語句中選擇其一來執(zhí)行,這是選擇結(jié)構(gòu)程序設(shè)計解決的問題。構(gòu)程序設(shè)計解決的問題。 3.1 語句塊l 語句塊語句塊又稱復(fù)合語句,是指用一對大括號又稱復(fù)合語句,是指用一對大括號將若干將若干條語句括起來,目的是將多條語句合并為一個整體條語句括起來,目的是將多條語句合并為一個整體,形成邏輯上的一條語句。,形成邏輯上的一條語句。a = b - a; b = b - a; a = b + a; 3.2 選擇結(jié)構(gòu)和條件判斷l(xiāng) Java語言使用關(guān)系表達(dá)式和邏輯表達(dá)式描述條件。語言使用關(guān)系表達(dá)式和邏輯表達(dá)式

3、描述條件。l 一般來說,關(guān)系表達(dá)式用來表示較簡單的條件,而一般來說,關(guān)系表達(dá)式用來表示較簡單的條件,而邏輯表達(dá)式用來表示較復(fù)雜的條件。邏輯表達(dá)式用來表示較復(fù)雜的條件。l 兩種表達(dá)式的值均為兩種表達(dá)式的值均為boolean類型,值為類型,值為true表示條表示條件成立,件成立,false表示條件不成立。表示條件不成立。 3.2 選擇結(jié)構(gòu)和條件判斷l(xiāng) 如果考試不及格,需要參加補(bǔ)考。如果考試不及格,需要參加補(bǔ)考。 l 如果年齡超過如果年齡超過60歲,則可以免費(fèi)乘坐地鐵。歲,則可以免費(fèi)乘坐地鐵。 l 如果某字符變量如果某字符變量ch中存放大寫字母,則轉(zhuǎn)換為小寫中存放大寫字母,則轉(zhuǎn)換為小寫字母。字母。

4、l 判斷例判斷例2-3中輸入的三角形的三個邊長中輸入的三角形的三個邊長a、b、c能否能否構(gòu)成一個三角形。構(gòu)成一個三角形。 l 判斷整型變量判斷整型變量year的值是否是閏年。的值是否是閏年。 3.3 if語句l Java語言使用語言使用if語句實現(xiàn)根據(jù)判斷條件進(jìn)行選擇的語句實現(xiàn)根據(jù)判斷條件進(jìn)行選擇的控制結(jié)構(gòu),主要有三種單分支選擇結(jié)構(gòu)、雙分支選控制結(jié)構(gòu),主要有三種單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)和擇結(jié)構(gòu)和if語句的嵌套三種使用形式。語句的嵌套三種使用形式。3.3.1 單分支if語句l 語法格式:語法格式:if(判斷條件) 語句 l 在在if語句中,關(guān)鍵字語句中,關(guān)鍵字if后面()中的判斷條件必須是

5、后面()中的判斷條件必須是布爾類型的表達(dá)式,即必須是關(guān)系表達(dá)式或邏輯表布爾類型的表達(dá)式,即必須是關(guān)系表達(dá)式或邏輯表達(dá)式,緊跟著達(dá)式,緊跟著if()的一條語句稱為的一條語句稱為“真真”分支。分支。l 如果判斷條件的結(jié)果為如果判斷條件的結(jié)果為true時,則執(zhí)行真分支,然時,則執(zhí)行真分支,然后后if語句執(zhí)行完成,繼續(xù)執(zhí)行語句執(zhí)行完成,繼續(xù)執(zhí)行if語句的后續(xù)語句;如語句的后續(xù)語句;如果判斷條件結(jié)果為果判斷條件結(jié)果為false,則,則if語句直接完成,繼續(xù)語句直接完成,繼續(xù)執(zhí)行執(zhí)行if語句的后續(xù)語句。語句的后續(xù)語句。 3.3.1 單分支單分支if語句語句l “真真”分支只能有一條語句,當(dāng)其功能復(fù)雜需要多

6、條分支只能有一條語句,當(dāng)其功能復(fù)雜需要多條語句才能完成時,要使用語句塊作為語句才能完成時,要使用語句塊作為“真真”分支。分支。l 建議建議:無論:無論“真真”分支有一條或多條語句,均寫成語分支有一條或多條語句,均寫成語句塊的形式,可以提高程序可讀性,減少出錯的機(jī)率句塊的形式,可以提高程序可讀性,減少出錯的機(jī)率。l 例例3-1:求整數(shù)的絕對值。要求從鍵盤輸入一個整數(shù):求整數(shù)的絕對值。要求從鍵盤輸入一個整數(shù),計算并輸出它的絕對值。,計算并輸出它的絕對值。 l 例例3-2:兩個整數(shù)的排序。從鍵盤輸入兩個整數(shù):兩個整數(shù)的排序。從鍵盤輸入兩個整數(shù)a和和b,按值從大到小的順序輸出。,按值從大到小的順序輸出

7、。 l 例例3-3:三個整數(shù)的排序。輸入三個整數(shù):三個整數(shù)的排序。輸入三個整數(shù)a、b和和c,按,按值從大到小的順序輸出。值從大到小的順序輸出。 3.3.2 雙分支雙分支if語句語句l if語句的雙分支結(jié)構(gòu)稱為語句的雙分支結(jié)構(gòu)稱為if-else語句,它可以根據(jù)一個判斷條語句,它可以根據(jù)一個判斷條件的兩種不同的結(jié)果件的兩種不同的結(jié)果true或或false來指定不同的語句執(zhí)行。其來指定不同的語句執(zhí)行。其語法格式如下:語法格式如下:if(判斷條件) 語句1else 語句2 l 其中語句其中語句1是在判斷條件為是在判斷條件為true時執(zhí)行,稱為時執(zhí)行,稱為“真真”分支;語分支;語句句2是在判斷條件為是在

8、判斷條件為false時執(zhí)行,稱為時執(zhí)行,稱為“假假”分支。在雙分分支。在雙分支支if語句的一次執(zhí)行過程中,語句的一次執(zhí)行過程中,“真真”和和“假假”兩個分支必然兩個分支必然有且只有一個分支執(zhí)行。有且只有一個分支執(zhí)行。l 與單分支與單分支if語句一樣,語句語句一樣,語句1和語句和語句2只能寫一條語句,需要只能寫一條語句,需要多條語句時使用語句塊。多條語句時使用語句塊。 3.3.2 雙分支雙分支if語句語句l 例例3-4:判斷整數(shù)的奇偶性。輸入一個整數(shù):判斷整數(shù)的奇偶性。輸入一個整數(shù)x,根據(jù),根據(jù)其奇偶性輸出其奇偶性輸出x是奇數(shù)或是奇數(shù)或x是偶數(shù)。是偶數(shù)。l 例例3-5:改進(jìn)例:改進(jìn)例2-3中三角

9、形面積計算程序。要求當(dāng)中三角形面積計算程序。要求當(dāng)輸入的三個邊長能夠構(gòu)成三角形時計算三角形面積輸入的三個邊長能夠構(gòu)成三角形時計算三角形面積,否則輸出,否則輸出“輸入的三個邊長無法構(gòu)成三角形輸入的三個邊長無法構(gòu)成三角形”。3.3.3 if語句的嵌套語句的嵌套l if或或if-else語句的分支中可以是任意合法語句的分支中可以是任意合法Java語句,語句,當(dāng)然也可以是其它當(dāng)然也可以是其它if或或if-else語句。這種在語句。這種在if或或if-else的某個分支中嵌入其它的某個分支中嵌入其它if或或if-else語句的形式稱語句的形式稱為為if語句的嵌套語句的嵌套。 l 嵌入的嵌入的if或或if

10、-else語句稱為內(nèi)層語句稱為內(nèi)層if語句,并且在內(nèi)層語句,并且在內(nèi)層if語句中還可以繼續(xù)嵌入語句中還可以繼續(xù)嵌入if或或if-else語句,而且嵌套的語句,而且嵌套的層數(shù)是沒有限制,稱為多層嵌套。層數(shù)是沒有限制,稱為多層嵌套。 3.3.3 if語句的嵌套語句的嵌套l 1. 在在if-else語句的語句的else分支嵌套多層分支嵌套多層if語句語句 if(判斷條件1) 語句1else if(判斷條件2) 語句2else if(判斷條件3) 語句3else if(判斷條件n) 語句nelse 語句n+1 l 說明:判斷條件說明:判斷條件1為為true時,執(zhí)行語句時,執(zhí)行語句1;判斷條件;判斷條件

11、1為為false,判斷條件,判斷條件2為為true時執(zhí)行語句時執(zhí)行語句2;依次類推;依次類推,所有判斷條件均為,所有判斷條件均為false時,執(zhí)行語句時,執(zhí)行語句n+1。任何。任何一個語句分支執(zhí)行完成后,整個嵌套的一個語句分支執(zhí)行完成后,整個嵌套的if語句執(zhí)行結(jié)語句執(zhí)行結(jié)束。束。3.3.3 if語句的嵌套語句的嵌套l 2. 更加靈活的嵌套方式更加靈活的嵌套方式if(判斷條件1) if(判斷條件2) 語句1 else 語句2else if(判斷條件3) 語句3 else 語句4 3.3.3 if語句的嵌套語句的嵌套l 3. if語句嵌套時語句嵌套時else與與if的匹配原則的匹配原則l Java

12、語言規(guī)定,語言規(guī)定,else總是與其前面離其最近的同一總是與其前面離其最近的同一語句塊中的尚未匹配過的語句塊中的尚未匹配過的if進(jìn)行匹配。進(jìn)行匹配。 l 例例3-6:根據(jù)下面數(shù)學(xué)函數(shù),編寫程序輸入:根據(jù)下面數(shù)學(xué)函數(shù),編寫程序輸入x,計算,計算并輸出并輸出y的值。的值。3.4 switch語句語句l Java語言提供了語言提供了switch語句來處理多分支選擇。語句來處理多分支選擇。switch語句的語法形式如下:語句的語法形式如下: switch(switch-表達(dá)式) case 常量1: 語句或語句組1; break; case 常量2: 語句或語句組2; break; case 常量n:

13、語句或語句組n; break; default: 語句n+1; 3.4 switch語句語句l switch語句的使用和執(zhí)行遵循以下規(guī)則:語句的使用和執(zhí)行遵循以下規(guī)則:(1)關(guān)鍵字switch后面括號中“switch-表達(dá)式”計算結(jié)果的類型必須是:char、byte、short或int類型。(2)每個關(guān)鍵字case定義了一個分支,case后面的常量的數(shù)據(jù)類型必須與“switch-表達(dá)式”的類型相同。不允許兩個分支的常量值相同。(3)switch語句的執(zhí)行流程:首先計算“switch-表達(dá)式”值,然后從第1個case分支開始自上而下的將該值與case后面常量進(jìn)行比較,如果找到某個分支的常量與該值

14、相同,則從該分支的第1條語句開始執(zhí)行,直到碰到break語句或執(zhí)行到switch語句的末尾。(4)break語句是可選的,其作用是立即終止switch語句。(5)default分支是可行的,“switch-表達(dá)式”的值與所有case分支的常量均不相同時,default后面的語句會被執(zhí)行。3.4 switch語句語句l 例例3-7:根據(jù)考試成績確定成績的等級。輸入一個考:根據(jù)考試成績確定成績的等級。輸入一個考試成績,合法的考試成績應(yīng)該是試成績,合法的考試成績應(yīng)該是0到到100的整數(shù)。如的整數(shù)。如果成績在果成績在90分以上,考試等級為分以上,考試等級為“優(yōu)秀優(yōu)秀”;如果成;如果成績在績在80分至分

15、至89分,考試等級為分,考試等級為“良好良好”;如果成績;如果成績在在70分至分至79分,考試等級為分,考試等級為“中等中等”;如果成績在;如果成績在60分至分至69分,考試等級為分,考試等級為“及格及格”;如果成績小于;如果成績小于60分,考試等級為分,考試等級為“不及格不及格”。輸入不合法的成績。輸入不合法的成績則輸出則輸出“輸入的成績不合法輸入的成績不合法”。3.5 選擇結(jié)構(gòu)程序舉例l 例例3-8:求一元二次方程:求一元二次方程ax2 + bx + c = 0的所有解的所有解。l 例例3-9:判斷指定的年月有幾天。輸入年號和月份:判斷指定的年月有幾天。輸入年號和月份兩個整數(shù),使用兩個整數(shù),使用switch和和if語句實現(xiàn)選擇結(jié)構(gòu)計算語句實現(xiàn)選擇結(jié)構(gòu)計算該月有多少天。該月有多少天。l 例例3-10:編寫一個猜數(shù)字游戲。用戶想好一個:編寫一個猜數(shù)字游戲。用戶想好一個0到到9之間的數(shù)字,然后回答程序之間的數(shù)字,然后回答程序2個問題,程序嘗試猜個問題,程序嘗試猜中這個數(shù)字。中這個數(shù)字。課后工作l 復(fù)習(xí)本章內(nèi)容復(fù)習(xí)本章內(nèi)容l 編寫程序,輸入一個整數(shù),判斷并輸出它是不是偶編寫程序,輸入一個整數(shù),判斷并輸出它是不是偶數(shù)。數(shù)。l 編寫程序,輸入兩個實數(shù)編寫程序,輸入兩個實數(shù)x,y代表一個點的

溫馨提示

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

評論

0/150

提交評論