官术网_书友最值得收藏!

3.3 分支語句

分支語句用于實現分支結構程序設計。Java語言提供了兩種分支結構:if分支語句和switch分支語句。

3.3.1 if語句

978-7-111-60245-3-Chapter03-4.jpg

圖3-2 單選條件語句執行過程

Java中的if語句有3種形式。

(1)單選條件語句

單選條件語句的語句格式為:

if(<表達式>)

<語句>

該語句的執行流程為:當if語句中的條件表達式為true時執行一組相關的語句,否則不執行語句,如圖3-2所示。

說明:

①條件表達式必須用一對圓括號“()”括起來;

②語句體可以是一條語句,也可以是多條語句,若是多條語句,必須用一對花括號“{}”括起來構成一個復合語句。

【例3.1】輸入兩個整數a和b,輸出其中較大的一個數。

978-7-111-60245-3-Chapter03-5.jpg

978-7-111-60245-3-Chapter03-6.jpg

流程圖如圖3-3所示,程序執行后的運行結果如圖3-4所示。

978-7-111-60245-3-Chapter03-7.jpg

圖3-3 求兩個數中的最大值流程圖1

978-7-111-60245-3-Chapter03-8.jpg

圖3-4 求兩個數中最大值的運算結果

(2)雙選條件語句

雙選條件語句的語句格式為:

if(<表達式>)

<語句1>

else

<語句2>

該語句的執行流程為:當if語句中的條件表達式為true時執行一組相關的語句,否則執行另一組相關的語句,如圖3-5所示。

【例3.2】輸入兩個整數a和b,輸出其中較大的一個數。

978-7-111-60245-3-Chapter03-9.jpg

圖3-5 雙選條件語句執行過程

978-7-111-60245-3-Chapter03-10.jpg

978-7-111-60245-3-Chapter03-11.jpg

流程圖如圖3-6所示,程序運行結果如圖3-4所示。

(3)多選條件語句

多選條件語句的語句格式為:

978-7-111-60245-3-Chapter03-12.jpg

978-7-111-60245-3-Chapter03-13.jpg

圖3-6 求兩個數中的最大值流程圖2

【例3.3】有下列分段函數:

978-7-111-60245-3-Chapter03-14.jpg

編寫程序,輸入x的值,輸出y值。

978-7-111-60245-3-Chapter03-15.jpg

流程圖如圖3-7所示,程序運行結果如圖3-8所示。

978-7-111-60245-3-Chapter03-16.jpg

圖3-7 分段函數求值流程圖1

978-7-111-60245-3-Chapter03-17.jpg

圖3-8 分段函數求值運行結果

2.if語句的嵌套

在if語句中又包含一個或多個if語句稱為if語句的嵌套。其一般格式為:

978-7-111-60245-3-Chapter03-18.jpg

【例3.4】有下列分段函數:

978-7-111-60245-3-Chapter03-19.jpg

編寫程序,輸入x的值,輸出y值。

978-7-111-60245-3-Chapter03-20.jpg

流程圖如圖3-9所示,程序運行結果如圖3-8所示。

978-7-111-60245-3-Chapter03-21.jpg

圖3-9 分段函數求值流程圖2

在該程序中,內層的if語句嵌套在外層的if語句的if部分。if語句嵌套使用時,應當注意else與if的配對關系:else總是與其前面最近的還沒有配對的if進行配對。

【例3.5】求3個整數a、b、c中的最大者,a、b、c由鍵盤輸入。

978-7-111-60245-3-Chapter03-22.jpg

流程圖如圖3-10所示,程序運行結果如圖3-11所示。

978-7-111-60245-3-Chapter03-23.jpg

圖3-10 求3個數中最大數的流程圖

978-7-111-60245-3-Chapter03-24.jpg

圖3-11 求3個數中最大數的運行結果

3.3.2 switch語句

在if語句中,布爾表達式的值只有true和false兩種。Java提供一種可以提供更多選擇的語句:switch語句,也稱開關語句。

作用:實現多路分支程序。

語句格式

978-7-111-60245-3-Chapter03-25.jpg

978-7-111-60245-3-Chapter03-26.jpg

使用switch語句時需要注意以下幾點。

1)表達式類型可為byte、char、short、int或enum類型,并且只能與常量進行比較,如果匹配成功,則執行case子句后面的語句序列。

2)每個case后面的常量表達式值必須互不相同。

3)一個case后可有多個語句(不必用花括號),程序自動順序執行case后的所有語句;一個case后面也可以沒有任何語句。

4)每個case后面的常量表達式只起語句標號的作用,每執行完一個case后面的語句后,程序會不加判斷地自動執行下一個case后面的語句。所以,執行完一個case分支后,需使用break語句跳出switch語句,終止switch語句的執行。

5)default子句可選。當表達式的值與任何case子句中的常量都不匹配時,程序執行default子句后面的語句序列,若無default子句,則程序退出switch語句。

【例3.6】根據給定年、月,輸出該月的天數。

978-7-111-60245-3-Chapter03-27.jpg

978-7-111-60245-3-Chapter03-28.jpg

978-7-111-60245-3-Chapter03-29.jpg

程序運行結果如圖3-12所示。

【例3.7】商店打折售貨。購貨金額數量越大,折扣越大。具體標準為(m:購貨金額,d:折扣率):

m<250(元) d=0%

250≤m<500 d=5%

500≤m<1000 d=7.5%

1000≤m<2000 d=10%

m≥2000 d=15%

從鍵盤輸入購貨金額,計算實付的金額。

978-7-111-60245-3-Chapter03-30.jpg

圖3-12 例3.6運行結果圖

分析:首先應找出購貨金額與折扣率之間對應關系變化的規律。從題意已知,當購貨金額m每變化250元或250元的倍數時,折扣率就會變化。用m/250來表示折扣率的分檔情況,見表3-1。

3-1 商店打折售貨分檔情況表

978-7-111-60245-3-Chapter03-31.jpg

根據購貨金額確定好折扣率后,再計算出實付金額。

978-7-111-60245-3-Chapter03-32.jpg

978-7-111-60245-3-Chapter03-33.jpg

程序運行結果如圖3-13所示。

978-7-111-60245-3-Chapter03-34.jpg

圖3-13 打折程序運行結果

主站蜘蛛池模板: 马鞍山市| 东乌| 黑水县| 新安县| 泸溪县| 博白县| 临夏市| 台北县| 阜康市| 理塘县| 桑植县| 德安县| 财经| 攀枝花市| 苍梧县| 梅河口市| 玛曲县| 盘锦市| 共和县| 中牟县| 泊头市| 广德县| 三河市| 宜春市| 芒康县| 左云县| 大连市| 仙居县| 梁平县| 扎鲁特旗| 惠来县| 邻水| 长武县| 马公市| 丽水市| 衢州市| 潼关县| 湖南省| 石阡县| 阆中市| 钟祥市|