第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ù)免費閱讀

下載本文檔

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

文檔簡介

第3章選擇結(jié)構(gòu)程序設(shè)計Java程序設(shè)計2學(xué)習(xí)目標(biāo)本章介紹選擇結(jié)構(gòu)的程序設(shè)計方法及Java語言提供實現(xiàn)選擇結(jié)構(gòu)if語句和switch語句的語法及使用方法。順序結(jié)構(gòu)的各語句按照在程序中的排列順序自上而下依次執(zhí)行,執(zhí)行完一條語句自動執(zhí)行下一條語句,這是最簡單的程序結(jié)構(gòu)。實際程序設(shè)計過程中,更多的情況是需要根據(jù)某個條件是否成立決定某些語句能否執(zhí)行,或者從給定的兩種或多種語句中選擇其一來執(zhí)行,這是選擇結(jié)構(gòu)程序設(shè)計解決的問題。3.1語句塊語句塊又稱復(fù)合語句,是指用一對大括號{}將若干條語句括起來,目的是將多條語句合并為一個整體,形成邏輯上的一條語句。{a=b-a;b=b-a;a=b+a;}3.2選擇結(jié)構(gòu)和條件判斷Java語言使用關(guān)系表達式和邏輯表達式描述條件。一般來說,關(guān)系表達式用來表示較簡單的條件,而邏輯表達式用來表示較復(fù)雜的條件。兩種表達式的值均為boolean類型,值為true表示條件成立,false表示條件不成立。3.2選擇結(jié)構(gòu)和條件判斷如果考試不及格,需要參加補考。如果年齡超過60歲,則可以免費乘坐地鐵。如果某字符變量ch中存放大寫字母,則轉(zhuǎn)換為小寫字母。判斷例2-3中輸入的三角形的三個邊長a、b、c能否構(gòu)成一個三角形。判斷整型變量year的值是否是閏年。3.3if語句Java語言使用if語句實現(xiàn)根據(jù)判斷條件進行選擇的控制結(jié)構(gòu),主要有三種單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)和if語句的嵌套三種使用形式。3.3.1單分支if語句語法格式:if(判斷條件)

語句在if語句中,關(guān)鍵字if后面()中的判斷條件必須是布爾類型的表達式,即必須是關(guān)系表達式或邏輯表達式,緊跟著if()的一條語句稱為“真”分支。如果判斷條件的結(jié)果為true時,則執(zhí)行真分支,然后if語句執(zhí)行完成,繼續(xù)執(zhí)行if語句的后續(xù)語句;如果判斷條件結(jié)果為false,則if語句直接完成,繼續(xù)執(zhí)行if語句的后續(xù)語句。3.3.1單分支if語句“真”分支只能有一條語句,當(dāng)其功能復(fù)雜需要多條語句才能完成時,要使用語句塊作為“真”分支。建議:無論“真”分支有一條或多條語句,均寫成語句塊的形式,可以提高程序可讀性,減少出錯的機率。例3-1:求整數(shù)的絕對值。要求從鍵盤輸入一個整數(shù),計算并輸出它的絕對值。例3-2:兩個整數(shù)的排序。從鍵盤輸入兩個整數(shù)a和b,按值從大到小的順序輸出。例3-3:三個整數(shù)的排序。輸入三個整數(shù)a、b和c,按值從大到小的順序輸出。3.3.2雙分支if語句if語句的雙分支結(jié)構(gòu)稱為if-else語句,它可以根據(jù)一個判斷條件的兩種不同的結(jié)果true或false來指定不同的語句執(zhí)行。其語法格式如下:if(判斷條件)

語句1else

語句2其中語句1是在判斷條件為true時執(zhí)行,稱為“真”分支;語句2是在判斷條件為false時執(zhí)行,稱為“假”分支。在雙分支if語句的一次執(zhí)行過程中,“真”和“假”兩個分支必然有且只有一個分支執(zhí)行。與單分支if語句一樣,語句1和語句2只能寫一條語句,需要多條語句時使用語句塊。3.3.2雙分支if語句例3-4:判斷整數(shù)的奇偶性。輸入一個整數(shù)x,根據(jù)其奇偶性輸出x是奇數(shù)或x是偶數(shù)。例3-5:改進例2-3中三角形面積計算程序。要求當(dāng)輸入的三個邊長能夠構(gòu)成三角形時計算三角形面積,否則輸出“輸入的三個邊長無法構(gòu)成三角形”。3.3.3if語句的嵌套if或if-else語句的分支中可以是任意合法Java語句,當(dāng)然也可以是其它if或if-else語句。這種在if或if-else的某個分支中嵌入其它if或if-else語句的形式稱為if語句的嵌套。嵌入的if或if-else語句稱為內(nèi)層if語句,并且在內(nèi)層if語句中還可以繼續(xù)嵌入if或if-else語句,而且嵌套的層數(shù)是沒有限制,稱為多層嵌套。3.3.3if語句的嵌套1.在if-else語句的else分支嵌套多層if語句if(判斷條件1)語句1elseif(判斷條件2)語句2elseif(判斷條件3)語句3……elseif(判斷條件n)語句nelse語句n+1說明:判斷條件1為true時,執(zhí)行語句1;判斷條件1為false,判斷條件2為true時執(zhí)行語句2;依次類推,所有判斷條件均為false時,執(zhí)行語句n+1。任何一個語句分支執(zhí)行完成后,整個嵌套的if語句執(zhí)行結(jié)束。3.3.3if語句的嵌套2.更加靈活的嵌套方式if(判斷條件1)if(判斷條件2)

語句1else

語句2elseif(判斷條件3)

語句3else

語句43.3.3if語句的嵌套3.if語句嵌套時else與if的匹配原則Java語言規(guī)定,else總是與其前面離其最近的同一語句塊中的尚未匹配過的if進行匹配。例3-6:根據(jù)下面數(shù)學(xué)函數(shù),編寫程序輸入x,計算并輸出y的值。3.4switch語句Java語言提供了switch語句來處理多分支選擇。switch語句的語法形式如下:switch(switch-表達式){case常量1:語句或語句組1;break;case常量2:語句或語句組2;break;……case常量n:語句或語句組n;break;default:語句n+1;}3.4switch語句switch語句的使用和執(zhí)行遵循以下規(guī)則:(1)關(guān)鍵字switch后面括號中“switch-表達式”計算結(jié)果的類型必須是:char、byte、short或int類型。(2)每個關(guān)鍵字case定義了一個分支,case后面的常量的數(shù)據(jù)類型必須與“switch-表達式”的類型相同。不允許兩個分支的常量值相同。(3)switch語句的執(zhí)行流程:首先計算“switch-表達式”值,然后從第1個case分支開始自上而下的將該值與case后面常量進行比較,如果找到某個分支的常量與該值相同,則從該分支的第1條語句開始執(zhí)行,直到碰到break語句或執(zhí)行到switch語句的末尾。(4)break語句是可選的,其作用是立即終止switch語句。(5)default分支是可行的,“switch-表達式”的值與所有case分支的常量均不相同時,default后面的語句會被執(zhí)行。3.4switch語句例3-7:根據(jù)考試成績確定成績的等級。輸入一個考試成績,合法的考試成績應(yīng)該是0到100的整數(shù)。如果成績在90分以上,考試等級為“優(yōu)秀”;如果成績在80分至89分,考試等級為“良好”;如果成績在70分至79分,考試等級為“中等”;如果成績在60分至69分,考試等級為“及格”;如果成績小于60分,考試等級為“不及格”。輸入不合法的成績則輸出“輸入的成績不合法”。3.5選擇結(jié)構(gòu)程序舉例例3-8:求一元二次方程ax2+bx+c=0的所有解。例3-9:判斷指定的年月有幾天。輸入年號和月份兩個整數(shù),使用switch和if語句實現(xiàn)選擇結(jié)構(gòu)計算該月有多少天。例3-10:編寫一個猜數(shù)字游戲。用戶想好一個0到9之間的數(shù)字,然后回答程序2個問題,程序嘗試猜中這個數(shù)字。課后工作復(fù)習(xí)本章內(nèi)容編寫程序,輸入一個整數(shù),

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論