書名: 零基礎學Java(第5版)作者名: 黃傳祿 常建功 陳浩本章字數: 1453字更新時間: 2020-06-17 18:13:11
4.2 條件語句
在現實生活中,經常聽人說:如果某人發財了,某人就會做什么。其實這就是程序設計中所說的條件語句。例如“如果……就……”“否則……”,當然這只是很簡單的條件語句,在真正的程序設計中,使用的條件語句要比這復雜得多。
4.2.1 簡單條件語句
在程序設計中,條件語句的標準格式如下:
if(條件) { 目的一; } else { 目的二; }
【實例4-3】掌握格式后,先看一個簡單的程序段。
01 public class Control { //定義一個Control類 02 public static void main(String[] args) { //主方法 03 int a = 20; //定義整型變量a并賦值 04 int b = 30; //定義整型變量b并賦值 05 if (a > b) { //將整型變量a,b的大小比較得出的布爾型變量作為條件語句的條件 06 System.out.println("很幸運!"); 07 } else { 08 System.out.println("很開心"); 09 } 10 } 11 }
【代碼說明】因為“a=20”而“b=30”,所以“a<b”。在條件語句中,程序代碼的意思是,如果“a>b”,就輸出“很幸運!”,如果“a<b”,就輸出“很開心”,所以程序的輸出結果就是“很開心!”。
【運行效果】
很開心!
注意 條件表達式是一個關系表達式,其結果是布爾型數據。換句話解釋上面的程序段:如果“a>b”是真,就輸出“很幸運!”,否則輸出“很開心!”。
4.2.2 最簡單的條件語句
在條件語句的程序設計中,有一種最簡單的條件語句,如下所示:
if(條件) 目的;
如果有很多的目的,也可以采取下面的形式:
if(條件) { 目的一; 目的二; 目的三; 目的四; }
【實例4-4】下面看一個有關這種類型條件語句的例子。
01 public class Control1 //定義一個Control1類 02 { 03 public static void main(String[] args) //主方法 04 { 05 int salary=10000; //定義整型變量salary并賦值 06 if (salary>500) //條件判斷 07 { 08 System.out.println("想請吃飯!"); 09 System.out.println("想請唱歌!"); 10 System.out.println("想請喝酒!"); 11 } 12 13 } 14 }
【代碼說明】條件語句中判斷“salary>500”是否為真,如果是真就輸出“想請吃飯!想請唱歌!想請喝酒!”,如果是假,就什么都不做。在程序中“salary=10000”,滿足“salary>500”,條件為真,所以輸出以上三句話。
【運行效果】
想請吃飯! 想請唱歌! 想請喝酒!
注意 在有多個目的的程序段中,一般按順序執行,即先執行目的一,再執行目的二,最后執行目的三,依次執行。
4.2.3 適應多條件的條件語句
如果出現多種不同的條件,應該如何處理呢?可以使用條件語句中的復雜型,其結構如下:
if (條件1) { 目的1; } else if (條件2) { 目的2; } else if (條件3) { 目的4; } else { 不滿足以上所有條件,如何辦; }
【實例4-5】根據以上結構,學習有關這種復雜條件語句的實例,代碼如下所示:
01 public class Control2 { //定義一個Control2類 02 public static void main(String[] args) { //主方法 03 int achievement = 85; //定義整型變量achievement并賦值 04 //當achievement等于100,就獎勵一臺筆記本電腦 05 if (achievement == 100) { 06 System.out.println("獎勵一臺筆記本電腦"); 07 } else if ((achievement >= 90) && (achievement < 100)) { 08 //當achievement大于90小于100,就獎勵一個MP4 09 System.out.println("獎勵一個MP4"); 10 } else if ((achievement >= 80) && (achievement < 90)) { 11 //當achievement大于80小于90,就獎勵一塊網卡 12 System.out.println("獎勵一塊網卡"); 13 } else if ((achievement >= 60) && (achievement < 80)) { 14 //當achievement大于60小于80,不給予獎勵 15 System.out.println("不給予任何獎勵"); 16 } else { 17 //當achievement小于60,放假回學校補習 18 System.out.println("放假回學校補習"); 19 } 20 } 21 }
【代碼說明】從上述代碼可以看出,當有多個不同的條件存在時,處理的結果就不一樣。成績在大于80分小于90分之內,就可以獎勵一塊網卡;而成績大于90分小于100分,則獎勵一個MP4。在此程序中,初始成績是85分,所以處理的結果就是獎勵一塊網卡。
【運行效果】
獎勵一塊網卡
條件語句已經基本介紹完畢,很重要的一點就是,在程序設計的時候,思路一定要清晰,如何才能有很清晰的思路呢?那就是繪制流程圖。流程圖就是:在程序開發前,為了能夠使思路更加清晰,而將整個程序執行的順序流程繪制出來。圖4-1為一個有關條件語句的通用流程圖。

圖4-1 if條件語句流程圖
將上面的程序段作為一個實例,繪制其基本的流程圖,如圖4-2所示。鑒于頁面的版面,這里只給出了4種條件,并沒有完全體現出上面案例的5種條件,讀者可自己畫一個完整的流程圖。

圖4-2 實例4-5的條件流程圖
針對最復雜的條件語句,在程序設計中,有一種分支語句可以代替復雜條件語句。在實際程序開發過程中,使用條件語句類型比較多的是標準型,而復雜型的一般用分支語句來代替。當然也可以使用復雜型的條件語句。為了與實戰結合,下面以一個稍微復雜的程序段為例。
【實例4-6】條件:設計一個程序,用于計算語文(90)、英語(75)、數學(90)、藝術(85)四門功課的平均分,并對此學生進行評價。
在編寫程序之前要先繪制流程圖,這樣編程的思路就會非常清晰,本例流程圖如圖4-3所示。

圖4-3 實例4-6的條件流程圖
根據以上的流程圖編寫程序,程序代碼段如下:
01 public class Control3 { //定義一個Control3類 02 public static void main(String[] args) { //主方法 03 //創建成員變量 04 int Chinese = 90; 05 int English = 75; 06 int Math = 90; 07 int Art = 85; 08 //獲取平均值 09 double Avg = (Chinese + English + Math + Art) / 4; 10 if ((Avg > 90) && (Avg <= 100)) { 11 //如果是大于90小于等于100則是優秀 12 System.out.println("這個學生的所有功課的平均分是:" + Avg); 13 System.out.println("這個學生的成績應得A,是優秀"); 14 } else if ((Avg > 80) && (Avg <= 90)) { 15 //如果是大于80小于等于90則是良好 16 System.out.println("這個學生的所有功課的平均分是:" + Avg); 17 System.out.println("這個學生的成績應得B,是良好"); 18 } else if ((Avg > 70) && (Avg <= 80)) { 19 //如果是大于70小于等于80則是良 20 System.out.println("這個學生的所有功課的平均分是:" + Avg); 21 System.out.println("這個學生的成績應得C,是良"); 22 } else if ((Avg > 60) && (Avg <= 70)) { 23 //如果是大于60小于等于70則是合格 24 System.out.println("這個學生的所有功課的平均分是:" + Avg); 25 System.out.println("這個學生的成績應得D,是合格"); 26 } else { 27 //如果小于60則是不合格 28 System.out.println("這個學生的所有功課的平均分是:" + Avg); 29 System.out.println("這個學生的成績應得E,是不合格"); 30 } 31 } 32 }
【代碼說明】第10~32行是復雜型的條件語句,判斷了5種情況下不同的輸出結果。第9行定義的是double變量,表示計算后的平均值。
【運行效果】
這個學生的所有功課的平均分是:85.0 這個學生的成績應得B,是良好
4.2.4 嵌套條件語句
if嵌套語句也是經常使用的多分支判斷語句,在一次判斷之后又有新一層的判斷,接著又有一層判斷,逐漸深入,達到實現復雜判斷的目的,這種多層次判斷相當于多條件判斷,在滿足幾個條件后再執行適當的語句。if嵌套語句的格式是:
if(條件1) if(條件2) if(條件3) 執行語句1;
在if(條件1)成立的情況下繼續判斷直到if(條件3)也成立,再執行語句1。如果其中有一個條件不滿足,則跳出該if嵌套語句,繼續執行嵌套語句之外的代碼。
4.2.5 如何使用條件語句
使用條件語句需要注意以下幾點。
1)應該繪制流程圖,使編程時的思路更加清晰。
2)編程時,在最簡單形式的條件語句中,可以不使用大括號,因為它不會產生混淆。但建議無論是哪種形式的條件語句,都應該使用大括號。
- C++程序設計教程
- Python編程自學手冊
- Linux網絡程序設計:基于龍芯平臺
- Java程序設計與實踐教程(第2版)
- R大數據分析實用指南
- RabbitMQ Essentials
- Frank Kane's Taming Big Data with Apache Spark and Python
- 新印象:解構UI界面設計
- Django Design Patterns and Best Practices
- Microsoft HoloLens By Example
- IBM RUP參考與認證指南
- 一步一步學Spring Boot:微服務項目實戰(第2版)
- Learning Alfresco Web Scripts
- Android從入門到精通
- Scratch 3.0少兒積木式編程(6~10歲)