




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章 選擇結(jié)構(gòu)程序設(shè)計(jì)Java程序設(shè)計(jì)程序設(shè)計(jì)2學(xué)習(xí)目標(biāo)l 本章介紹選擇結(jié)構(gòu)的程序設(shè)計(jì)方法及本章介紹選擇結(jié)構(gòu)的程序設(shè)計(jì)方法及Java語(yǔ)言提供語(yǔ)言提供實(shí)現(xiàn)選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)if語(yǔ)句和語(yǔ)句和switch語(yǔ)句的語(yǔ)法及使用方法。語(yǔ)句的語(yǔ)法及使用方法。l 順序結(jié)構(gòu)的各語(yǔ)句按照在程序中的排列順序自上而順序結(jié)構(gòu)的各語(yǔ)句按照在程序中的排列順序自上而下依次執(zhí)行,執(zhí)行完一條語(yǔ)句自動(dòng)執(zhí)行下一條語(yǔ)句下依次執(zhí)行,執(zhí)行完一條語(yǔ)句自動(dòng)執(zhí)行下一條語(yǔ)句,這是最簡(jiǎn)單的程序結(jié)構(gòu)。,這是最簡(jiǎn)單的程序結(jié)構(gòu)。l 實(shí)際程序設(shè)計(jì)過(guò)程中,更多的情況是需要根據(jù)某個(gè)實(shí)際程序設(shè)計(jì)過(guò)程中,更多的情況是需要根據(jù)某個(gè)條件是否成立決定某些語(yǔ)句能否執(zhí)行,
2、或者從給定條件是否成立決定某些語(yǔ)句能否執(zhí)行,或者從給定的兩種或多種語(yǔ)句中選擇其一來(lái)執(zhí)行,這是選擇結(jié)的兩種或多種語(yǔ)句中選擇其一來(lái)執(zhí)行,這是選擇結(jié)構(gòu)程序設(shè)計(jì)解決的問(wèn)題。構(gòu)程序設(shè)計(jì)解決的問(wèn)題。 3.1 語(yǔ)句塊l 語(yǔ)句塊語(yǔ)句塊又稱復(fù)合語(yǔ)句,是指用一對(duì)大括號(hào)又稱復(fù)合語(yǔ)句,是指用一對(duì)大括號(hào)將若干將若干條語(yǔ)句括起來(lái),目的是將多條語(yǔ)句合并為一個(gè)整體條語(yǔ)句括起來(lái),目的是將多條語(yǔ)句合并為一個(gè)整體,形成邏輯上的一條語(yǔ)句。,形成邏輯上的一條語(yǔ)句。a = b - a; b = b - a; a = b + a; 3.2 選擇結(jié)構(gòu)和條件判斷l(xiāng) Java語(yǔ)言使用關(guān)系表達(dá)式和邏輯表達(dá)式描述條件。語(yǔ)言使用關(guān)系表達(dá)式和邏輯表達(dá)式
3、描述條件。l 一般來(lái)說(shuō),關(guān)系表達(dá)式用來(lái)表示較簡(jiǎn)單的條件,而一般來(lái)說(shuō),關(guān)系表達(dá)式用來(lái)表示較簡(jiǎn)單的條件,而邏輯表達(dá)式用來(lái)表示較復(fù)雜的條件。邏輯表達(dá)式用來(lái)表示較復(fù)雜的條件。l 兩種表達(dá)式的值均為兩種表達(dá)式的值均為boolean類型,值為類型,值為true表示條表示條件成立,件成立,false表示條件不成立。表示條件不成立。 3.2 選擇結(jié)構(gòu)和條件判斷l(xiāng) 如果考試不及格,需要參加補(bǔ)考。如果考試不及格,需要參加補(bǔ)考。 l 如果年齡超過(guò)如果年齡超過(guò)60歲,則可以免費(fèi)乘坐地鐵。歲,則可以免費(fèi)乘坐地鐵。 l 如果某字符變量如果某字符變量ch中存放大寫字母,則轉(zhuǎn)換為小寫中存放大寫字母,則轉(zhuǎn)換為小寫字母。字母。
4、l 判斷例判斷例2-3中輸入的三角形的三個(gè)邊長(zhǎng)中輸入的三角形的三個(gè)邊長(zhǎng)a、b、c能否能否構(gòu)成一個(gè)三角形。構(gòu)成一個(gè)三角形。 l 判斷整型變量判斷整型變量year的值是否是閏年。的值是否是閏年。 3.3 if語(yǔ)句l Java語(yǔ)言使用語(yǔ)言使用if語(yǔ)句實(shí)現(xiàn)根據(jù)判斷條件進(jìn)行選擇的語(yǔ)句實(shí)現(xiàn)根據(jù)判斷條件進(jìn)行選擇的控制結(jié)構(gòu),主要有三種單分支選擇結(jié)構(gòu)、雙分支選控制結(jié)構(gòu),主要有三種單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)和擇結(jié)構(gòu)和if語(yǔ)句的嵌套三種使用形式。語(yǔ)句的嵌套三種使用形式。3.3.1 單分支if語(yǔ)句l 語(yǔ)法格式:語(yǔ)法格式:if(判斷條件) 語(yǔ)句 l 在在if語(yǔ)句中,關(guān)鍵字語(yǔ)句中,關(guān)鍵字if后面()中的判斷條件必須是
5、后面()中的判斷條件必須是布爾類型的表達(dá)式,即必須是關(guān)系表達(dá)式或邏輯表布爾類型的表達(dá)式,即必須是關(guān)系表達(dá)式或邏輯表達(dá)式,緊跟著達(dá)式,緊跟著if()的一條語(yǔ)句稱為的一條語(yǔ)句稱為“真真”分支。分支。l 如果判斷條件的結(jié)果為如果判斷條件的結(jié)果為true時(shí),則執(zhí)行真分支,然時(shí),則執(zhí)行真分支,然后后if語(yǔ)句執(zhí)行完成,繼續(xù)執(zhí)行語(yǔ)句執(zhí)行完成,繼續(xù)執(zhí)行if語(yǔ)句的后續(xù)語(yǔ)句;如語(yǔ)句的后續(xù)語(yǔ)句;如果判斷條件結(jié)果為果判斷條件結(jié)果為false,則,則if語(yǔ)句直接完成,繼續(xù)語(yǔ)句直接完成,繼續(xù)執(zhí)行執(zhí)行if語(yǔ)句的后續(xù)語(yǔ)句。語(yǔ)句的后續(xù)語(yǔ)句。 3.3.1 單分支單分支if語(yǔ)句語(yǔ)句l “真真”分支只能有一條語(yǔ)句,當(dāng)其功能復(fù)雜需要多
6、條分支只能有一條語(yǔ)句,當(dāng)其功能復(fù)雜需要多條語(yǔ)句才能完成時(shí),要使用語(yǔ)句塊作為語(yǔ)句才能完成時(shí),要使用語(yǔ)句塊作為“真真”分支。分支。l 建議建議:無(wú)論:無(wú)論“真真”分支有一條或多條語(yǔ)句,均寫成語(yǔ)分支有一條或多條語(yǔ)句,均寫成語(yǔ)句塊的形式,可以提高程序可讀性,減少出錯(cuò)的機(jī)率句塊的形式,可以提高程序可讀性,減少出錯(cuò)的機(jī)率。l 例例3-1:求整數(shù)的絕對(duì)值。要求從鍵盤輸入一個(gè)整數(shù):求整數(shù)的絕對(duì)值。要求從鍵盤輸入一個(gè)整數(shù),計(jì)算并輸出它的絕對(duì)值。,計(jì)算并輸出它的絕對(duì)值。 l 例例3-2:兩個(gè)整數(shù)的排序。從鍵盤輸入兩個(gè)整數(shù):兩個(gè)整數(shù)的排序。從鍵盤輸入兩個(gè)整數(shù)a和和b,按值從大到小的順序輸出。,按值從大到小的順序輸出
7、。 l 例例3-3:三個(gè)整數(shù)的排序。輸入三個(gè)整數(shù):三個(gè)整數(shù)的排序。輸入三個(gè)整數(shù)a、b和和c,按,按值從大到小的順序輸出。值從大到小的順序輸出。 3.3.2 雙分支雙分支if語(yǔ)句語(yǔ)句l if語(yǔ)句的雙分支結(jié)構(gòu)稱為語(yǔ)句的雙分支結(jié)構(gòu)稱為if-else語(yǔ)句,它可以根據(jù)一個(gè)判斷條語(yǔ)句,它可以根據(jù)一個(gè)判斷條件的兩種不同的結(jié)果件的兩種不同的結(jié)果true或或false來(lái)指定不同的語(yǔ)句執(zhí)行。其來(lái)指定不同的語(yǔ)句執(zhí)行。其語(yǔ)法格式如下:語(yǔ)法格式如下:if(判斷條件) 語(yǔ)句1else 語(yǔ)句2 l 其中語(yǔ)句其中語(yǔ)句1是在判斷條件為是在判斷條件為true時(shí)執(zhí)行,稱為時(shí)執(zhí)行,稱為“真真”分支;語(yǔ)分支;語(yǔ)句句2是在判斷條件為是在
8、判斷條件為false時(shí)執(zhí)行,稱為時(shí)執(zhí)行,稱為“假假”分支。在雙分分支。在雙分支支if語(yǔ)句的一次執(zhí)行過(guò)程中,語(yǔ)句的一次執(zhí)行過(guò)程中,“真真”和和“假假”兩個(gè)分支必然兩個(gè)分支必然有且只有一個(gè)分支執(zhí)行。有且只有一個(gè)分支執(zhí)行。l 與單分支與單分支if語(yǔ)句一樣,語(yǔ)句語(yǔ)句一樣,語(yǔ)句1和語(yǔ)句和語(yǔ)句2只能寫一條語(yǔ)句,需要只能寫一條語(yǔ)句,需要多條語(yǔ)句時(shí)使用語(yǔ)句塊。多條語(yǔ)句時(shí)使用語(yǔ)句塊。 3.3.2 雙分支雙分支if語(yǔ)句語(yǔ)句l 例例3-4:判斷整數(shù)的奇偶性。輸入一個(gè)整數(shù):判斷整數(shù)的奇偶性。輸入一個(gè)整數(shù)x,根據(jù),根據(jù)其奇偶性輸出其奇偶性輸出x是奇數(shù)或是奇數(shù)或x是偶數(shù)。是偶數(shù)。l 例例3-5:改進(jìn)例:改進(jìn)例2-3中三角
9、形面積計(jì)算程序。要求當(dāng)中三角形面積計(jì)算程序。要求當(dāng)輸入的三個(gè)邊長(zhǎng)能夠構(gòu)成三角形時(shí)計(jì)算三角形面積輸入的三個(gè)邊長(zhǎng)能夠構(gòu)成三角形時(shí)計(jì)算三角形面積,否則輸出,否則輸出“輸入的三個(gè)邊長(zhǎng)無(wú)法構(gòu)成三角形輸入的三個(gè)邊長(zhǎng)無(wú)法構(gòu)成三角形”。3.3.3 if語(yǔ)句的嵌套語(yǔ)句的嵌套l if或或if-else語(yǔ)句的分支中可以是任意合法語(yǔ)句的分支中可以是任意合法Java語(yǔ)句,語(yǔ)句,當(dāng)然也可以是其它當(dāng)然也可以是其它if或或if-else語(yǔ)句。這種在語(yǔ)句。這種在if或或if-else的某個(gè)分支中嵌入其它的某個(gè)分支中嵌入其它if或或if-else語(yǔ)句的形式稱語(yǔ)句的形式稱為為if語(yǔ)句的嵌套語(yǔ)句的嵌套。 l 嵌入的嵌入的if或或if
10、-else語(yǔ)句稱為內(nèi)層語(yǔ)句稱為內(nèi)層if語(yǔ)句,并且在內(nèi)層語(yǔ)句,并且在內(nèi)層if語(yǔ)句中還可以繼續(xù)嵌入語(yǔ)句中還可以繼續(xù)嵌入if或或if-else語(yǔ)句,而且嵌套的語(yǔ)句,而且嵌套的層數(shù)是沒(méi)有限制,稱為多層嵌套。層數(shù)是沒(méi)有限制,稱為多層嵌套。 3.3.3 if語(yǔ)句的嵌套語(yǔ)句的嵌套l 1. 在在if-else語(yǔ)句的語(yǔ)句的else分支嵌套多層分支嵌套多層if語(yǔ)句語(yǔ)句 if(判斷條件1) 語(yǔ)句1else if(判斷條件2) 語(yǔ)句2else if(判斷條件3) 語(yǔ)句3else if(判斷條件n) 語(yǔ)句nelse 語(yǔ)句n+1 l 說(shuō)明:判斷條件說(shuō)明:判斷條件1為為true時(shí),執(zhí)行語(yǔ)句時(shí),執(zhí)行語(yǔ)句1;判斷條件;判斷條件
11、1為為false,判斷條件,判斷條件2為為true時(shí)執(zhí)行語(yǔ)句時(shí)執(zhí)行語(yǔ)句2;依次類推;依次類推,所有判斷條件均為,所有判斷條件均為false時(shí),執(zhí)行語(yǔ)句時(shí),執(zhí)行語(yǔ)句n+1。任何。任何一個(gè)語(yǔ)句分支執(zhí)行完成后,整個(gè)嵌套的一個(gè)語(yǔ)句分支執(zhí)行完成后,整個(gè)嵌套的if語(yǔ)句執(zhí)行結(jié)語(yǔ)句執(zhí)行結(jié)束。束。3.3.3 if語(yǔ)句的嵌套語(yǔ)句的嵌套l 2. 更加靈活的嵌套方式更加靈活的嵌套方式if(判斷條件1) if(判斷條件2) 語(yǔ)句1 else 語(yǔ)句2else if(判斷條件3) 語(yǔ)句3 else 語(yǔ)句4 3.3.3 if語(yǔ)句的嵌套語(yǔ)句的嵌套l 3. if語(yǔ)句嵌套時(shí)語(yǔ)句嵌套時(shí)else與與if的匹配原則的匹配原則l Java
12、語(yǔ)言規(guī)定,語(yǔ)言規(guī)定,else總是與其前面離其最近的同一總是與其前面離其最近的同一語(yǔ)句塊中的尚未匹配過(guò)的語(yǔ)句塊中的尚未匹配過(guò)的if進(jìn)行匹配。進(jìn)行匹配。 l 例例3-6:根據(jù)下面數(shù)學(xué)函數(shù),編寫程序輸入:根據(jù)下面數(shù)學(xué)函數(shù),編寫程序輸入x,計(jì)算,計(jì)算并輸出并輸出y的值。的值。3.4 switch語(yǔ)句語(yǔ)句l Java語(yǔ)言提供了語(yǔ)言提供了switch語(yǔ)句來(lái)處理多分支選擇。語(yǔ)句來(lái)處理多分支選擇。switch語(yǔ)句的語(yǔ)法形式如下:語(yǔ)句的語(yǔ)法形式如下: switch(switch-表達(dá)式) case 常量1: 語(yǔ)句或語(yǔ)句組1; break; case 常量2: 語(yǔ)句或語(yǔ)句組2; break; case 常量n:
13、語(yǔ)句或語(yǔ)句組n; break; default: 語(yǔ)句n+1; 3.4 switch語(yǔ)句語(yǔ)句l switch語(yǔ)句的使用和執(zhí)行遵循以下規(guī)則:語(yǔ)句的使用和執(zhí)行遵循以下規(guī)則:(1)關(guān)鍵字switch后面括號(hào)中“switch-表達(dá)式”計(jì)算結(jié)果的類型必須是:char、byte、short或int類型。(2)每個(gè)關(guān)鍵字case定義了一個(gè)分支,case后面的常量的數(shù)據(jù)類型必須與“switch-表達(dá)式”的類型相同。不允許兩個(gè)分支的常量值相同。(3)switch語(yǔ)句的執(zhí)行流程:首先計(jì)算“switch-表達(dá)式”值,然后從第1個(gè)case分支開始自上而下的將該值與case后面常量進(jìn)行比較,如果找到某個(gè)分支的常量與該值
14、相同,則從該分支的第1條語(yǔ)句開始執(zhí)行,直到碰到break語(yǔ)句或執(zhí)行到switch語(yǔ)句的末尾。(4)break語(yǔ)句是可選的,其作用是立即終止switch語(yǔ)句。(5)default分支是可行的,“switch-表達(dá)式”的值與所有case分支的常量均不相同時(shí),default后面的語(yǔ)句會(huì)被執(zhí)行。3.4 switch語(yǔ)句語(yǔ)句l 例例3-7:根據(jù)考試成績(jī)確定成績(jī)的等級(jí)。輸入一個(gè)考:根據(jù)考試成績(jī)確定成績(jī)的等級(jí)。輸入一個(gè)考試成績(jī),合法的考試成績(jī)應(yīng)該是試成績(jī),合法的考試成績(jī)應(yīng)該是0到到100的整數(shù)。如的整數(shù)。如果成績(jī)?cè)诠煽?jī)?cè)?0分以上,考試等級(jí)為分以上,考試等級(jí)為“優(yōu)秀優(yōu)秀”;如果成;如果成績(jī)?cè)诳?jī)?cè)?0分至分
15、至89分,考試等級(jí)為分,考試等級(jí)為“良好良好”;如果成績(jī);如果成績(jī)?cè)谠?0分至分至79分,考試等級(jí)為分,考試等級(jí)為“中等中等”;如果成績(jī)?cè)冢蝗绻煽?jī)?cè)?0分至分至69分,考試等級(jí)為分,考試等級(jí)為“及格及格”;如果成績(jī)小于;如果成績(jī)小于60分,考試等級(jí)為分,考試等級(jí)為“不及格不及格”。輸入不合法的成績(jī)。輸入不合法的成績(jī)則輸出則輸出“輸入的成績(jī)不合法輸入的成績(jī)不合法”。3.5 選擇結(jié)構(gòu)程序舉例l 例例3-8:求一元二次方程:求一元二次方程ax2 + bx + c = 0的所有解的所有解。l 例例3-9:判斷指定的年月有幾天。輸入年號(hào)和月份:判斷指定的年月有幾天。輸入年號(hào)和月份兩個(gè)整數(shù),使用兩個(gè)整數(shù),使用switch和和if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)計(jì)算語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)計(jì)算該月有多少天。該月有多少天。l 例例3-10:編寫一個(gè)猜數(shù)字游戲。用戶想好一個(gè):編寫一個(gè)猜數(shù)字游戲。用戶想好一個(gè)0到到9之間的數(shù)字,然后回答程序之間的數(shù)字,然后回答程序2個(gè)問(wèn)題,程序嘗試猜個(gè)問(wèn)題,程序嘗試猜中這個(gè)數(shù)字。中這個(gè)數(shù)字。課后工作l 復(fù)習(xí)本章內(nèi)容復(fù)習(xí)本章內(nèi)容l 編寫程序,輸入一個(gè)整數(shù),判斷并輸出它是不是偶編寫程序,輸入一個(gè)整數(shù),判斷并輸出它是不是偶數(shù)。數(shù)。l 編寫程序,輸入兩個(gè)實(shí)數(shù)編寫程序,輸入兩個(gè)實(shí)數(shù)x,y代表一個(gè)點(diǎn)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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)濟(jì)政策與行業(yè)風(fēng)險(xiǎn)分析試題及答案
- 網(wǎng)絡(luò)管理員考試各類型訓(xùn)練試題及答案
- 軟件系統(tǒng)測(cè)試核心概念解析試題及答案
- 計(jì)算機(jī)科學(xué)理論與實(shí)踐結(jié)合試題及答案
- VB編程理論試題及答案
- 提升營(yíng)收的多元化策略計(jì)劃
- 吉林省松原市名校2025屆數(shù)學(xué)七下期末監(jiān)測(cè)模擬試題含解析
- 擇業(yè)思考與決策計(jì)劃
- 2025軟考網(wǎng)絡(luò)管理員提高試題及答案
- 倉(cāng)庫(kù)貨物損耗控制措施計(jì)劃
- 小學(xué)生“四大名著”知識(shí)競(jìng)賽課件
- 領(lǐng)料登記表(模板)
- 《基于SWOT分析的企業(yè)營(yíng)銷策略研究(論文)6800字》
- 公路路基施工規(guī)范
- InDesign-CC-2019排版技術(shù)案例教程全書電子教案完整版課件
- 初中英語(yǔ)牛津譯林版8B unit7 international charities Task Charity work部?jī)?yōu)課件
- 華北電力大學(xué)ppt模板
- 旅游資源分類調(diào)查評(píng)價(jià)表 2017版
- 《我的夢(mèng)-中國(guó)夢(mèng)》主題班會(huì)課件
- 超聲波加工以及機(jī)床設(shè)計(jì)機(jī)械設(shè)計(jì)論文
- 義齒加工成本
評(píng)論
0/150
提交評(píng)論