- Java程序設計案例教程
- 許敏 史熒中
- 1459字
- 2020-08-07 16:35:19
3.3 分支語句
分支語句用于實現分支結構程序設計。Java語言提供了兩種分支結構:if分支語句和switch分支語句。
3.3.1 if語句
圖3-2 單選條件語句執行過程
Java中的if語句有3種形式。
(1)單選條件語句
單選條件語句的語句格式為:
if(<表達式>)
<語句>
該語句的執行流程為:當if語句中的條件表達式為true時執行一組相關的語句,否則不執行語句,如圖3-2所示。
說明:
①條件表達式必須用一對圓括號“()”括起來;
②語句體可以是一條語句,也可以是多條語句,若是多條語句,必須用一對花括號“{}”括起來構成一個復合語句。
【例3.1】輸入兩個整數a和b,輸出其中較大的一個數。
流程圖如圖3-3所示,程序執行后的運行結果如圖3-4所示。
圖3-3 求兩個數中的最大值流程圖1
圖3-4 求兩個數中最大值的運算結果
(2)雙選條件語句
雙選條件語句的語句格式為:
if(<表達式>)
<語句1>
else
<語句2>
該語句的執行流程為:當if語句中的條件表達式為true時執行一組相關的語句,否則執行另一組相關的語句,如圖3-5所示。
【例3.2】輸入兩個整數a和b,輸出其中較大的一個數。
圖3-5 雙選條件語句執行過程
流程圖如圖3-6所示,程序運行結果如圖3-4所示。
(3)多選條件語句
多選條件語句的語句格式為:
圖3-6 求兩個數中的最大值流程圖2
【例3.3】有下列分段函數:
編寫程序,輸入x的值,輸出y值。
流程圖如圖3-7所示,程序運行結果如圖3-8所示。
圖3-7 分段函數求值流程圖1
圖3-8 分段函數求值運行結果
2.if語句的嵌套
在if語句中又包含一個或多個if語句稱為if語句的嵌套。其一般格式為:
【例3.4】有下列分段函數:
編寫程序,輸入x的值,輸出y值。
流程圖如圖3-9所示,程序運行結果如圖3-8所示。
圖3-9 分段函數求值流程圖2
在該程序中,內層的if語句嵌套在外層的if語句的if部分。if語句嵌套使用時,應當注意else與if的配對關系:else總是與其前面最近的還沒有配對的if進行配對。
【例3.5】求3個整數a、b、c中的最大者,a、b、c由鍵盤輸入。
流程圖如圖3-10所示,程序運行結果如圖3-11所示。
圖3-10 求3個數中最大數的流程圖
圖3-11 求3個數中最大數的運行結果
3.3.2 switch語句
在if語句中,布爾表達式的值只有true和false兩種。Java提供一種可以提供更多選擇的語句:switch語句,也稱開關語句。
作用:實現多路分支程序。
語句格式
使用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】根據給定年、月,輸出該月的天數。
程序運行結果如圖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%
從鍵盤輸入購貨金額,計算實付的金額。
圖3-12 例3.6運行結果圖
分析:首先應找出購貨金額與折扣率之間對應關系變化的規律。從題意已知,當購貨金額m每變化250元或250元的倍數時,折扣率就會變化。用m/250來表示折扣率的分檔情況,見表3-1。
表3-1 商店打折售貨分檔情況表
根據購貨金額確定好折扣率后,再計算出實付金額。
程序運行結果如圖3-13所示。
圖3-13 打折程序運行結果
- Mastering JavaScript Functional Programming
- LabVIEW Graphical Programming Cookbook
- CMDB分步構建指南
- 算法基礎:打開程序設計之門
- Java Web及其框架技術
- Python測試開發入門與實踐
- Haxe Game Development Essentials
- INSTANT Passbook App Development for iOS How-to
- Python Web數據分析可視化:基于Django框架的開發實戰
- Microsoft Dynamics AX 2012 R3 Financial Management
- Visual C++從入門到精通(第2版)
- MySQL數據庫應用實戰教程(慕課版)
- 量子計算機編程:從入門到實踐
- 信息學奧林匹克競賽初賽精講精練
- TensorFlow.NET實戰