第三章 選擇結構(一)


一、本章目標

  • 掌握基本if選擇結構
  • 掌握邏輯運算符
  • 掌握多重if選擇結構
  • 掌握嵌套if選擇結構

二、內容

1、if選擇結構

1.1 為什么需要if選擇結構

    問題:如果張浩的Java考試成績大於98分,張浩就能獲得一個MP4作為獎勵

1.2 什么是if選擇結構

    if選擇結構是根據條件判斷之后再做處理的一種語法結構。

1.2.1 語法    

  
  
  
          
  1. if ( 條件 ) {
  2. //代碼塊
  3. }

1.2.2 實例

    如果張浩的Java考試成績大於98分,張浩就能獲得一個MP4作為獎勵
   
   
   
           
  1. public class GetPrize {
  2. public static void main(String[] args) {
  3. Scanner input = new Scanner(System.in);
  4. System.out.print("輸入張浩的Java成績: "); // 提示輸入Java成績
  5. int score = input.nextInt(); // 從控制台獲取張浩的Java成績
  6. if (score > 90) { // 判斷是否大於90分
  7. System.out.println("老師說:不錯,獎勵一個MP4!");
  8. }
  9. }
  10. }

1.3 如何使用if選擇結構

1.3.1 基本if結構

  if ( 條件 ) {
//代碼塊
}

1.3.2 復雜條件下的if選擇結構

  • 問題:張浩Java成績大於98分,而且音樂成績大於80分,老師獎勵他;或者Java成績等於100分,音樂成績大於70分,老師也可以獎勵他。
  • 常用的邏輯運算符
運算符 漢語名稱 表達式 說明 舉例
&& 與、並且 條件1&&條件2 二個條件為真是,才為真;有一個為假,就為假
|| 條件1||條件2 二個條件有一個為真,則為真;二個為假,則為假
!條件 條件為真,結果為假
  • 表達寫法
    • (java>98&&music>80)||(java==100&&music>70)
    • java>98&&music>80||java==100&&music>70)
    
    
    
            
  1. public class GetPrize2 {
  2. public static void main(String[] args) {
  3. int score1 = 100; // 張浩的Java成績
  4. int score2 = 72; // 張浩的音樂成績
  5. if ( ( score1 >98&& score2 > 80 ) //假
  6. || ( score1 == 100 && score2 > 70 ) //真
  7. ){
  8. System.out.println("老師說:不錯,獎勵一個MP4!");
  9. }
  10. }
  11. }

1.3.3 使用if--else選擇結構

  • 問題:
    如果張浩Java考試成績大於98分,老師就獎勵他一個MP4,否則老師就罰他進行編碼
  • 語法
    
    
    
            
  1. if ( 條件 ) {
  2. //代碼塊1
  3. }else {
  4. //代碼塊2
  5. }

  • 實例
   
   
   
           
  1. public class SimpleIf {
  2. public static void main(String[] args) {
  3. int score = 91; // 張浩的Java成績
  4. if (score > 98) {
  5. System.out.println("老師說:不錯,獎勵一個MP4!");
  6. } else {
  7. System.out.println("老師說:懲罰進行編碼!");
  8. }
  9. }
  10. }

1.4 練習:買彩票

1.4.1 需求

  • 如果體彩中了500萬,我買車、資助希望工程、去歐洲旅游
  • 如果沒中,我買下一期體彩,繼續燒高香

1.4.2 實現

   
   
   
           
  1. public class IfElseTest {
  2. public static void main(String[] args) {
  3. boolean isSuc = true; //體彩中了500萬大獎
  4. if(isSuc){
  5. System.out.println("我買車");
  6. System.out.println("我資助希望工程");
  7. System.out.println("我去歐洲旅游");
  8. }else{
  9. System.out.println("我買下一期體彩");
  10. System.out.println("繼續燒高香");
  11. }
  12. }
  13. }

2 技能訓練

2.1 實現幸運抽獎

  • 需求
          抽獎規則:會員號的百位數字等於產生的隨機數字即為幸運會員
  • 效果
    
  • 實現思路
1. 產生隨機數
2. 從控制台接收一個4位會員號
3. 分解獲得百位數
4. 判斷是否是幸運會員
  • 提示
    1、 產生隨機數(0~9)的方法如下:
   
   
   
           
  1. int random=(int)(Math.random()*10);
    2、獲得百位上的數
   
   
   
           
  1. int baiwei = custNo / 100 % 10;
  • 實現
     
     
     
             
  1. public class GoodLuck {
  2. public static void main(String[] args) {
  3. /* 產生隨機數 */
  4. int random = (int) (Math.random() * 10);
  5. /* 從控制台接收一個4位會員號 */
  6. System.out.println("我行我素購物管理系統 > 幸運抽獎\n");
  7. System.out.print("請輸入4位會員號: ");
  8. Scanner input = new Scanner(System.in);
  9. int custNo = input.nextInt();
  10. /* 分解獲得百位 */
  11. int baiwei = custNo / 100 % 10;
  12. /* 判斷是否是幸運會員 */
  13. if (baiwei == random) {
  14. System.out.println(custNo + "是幸運客戶,獲精美Mp3一個。");
  15. } else {
  16. System.out.println(custNo + " 謝謝您的支持!");
  17. }
  18. }
  19. }
2.2 會員信息錄入
  • 需求
    • 錄入會員信息:包括會號、會員生日、會員積分
    • 判斷錄入的會員號是否合法:必須是四位整數
  • 效果

  • 實現
   
   
   
           
  1. public class AddCust {
  2. public static void main(String[] args) {
  3. System.out.println("我行我素購物管理系統 > 客戶信息管理 > 添加客戶信息\n");
  4. /*錄入會員信息*/
  5. Scanner input = new Scanner(System.in);
  6. System.out.print("請輸入會員號(<4位整數>):");
  7. int custNo = input.nextInt();
  8. System.out.print("請輸入會員生日(月/日<用兩位數表示>):");
  9. String custBirth = input.next();
  10. System.out.print("請輸入積分:");
  11. int custScore = input.nextInt();
  12. /*判斷會員號有效性*/
  13. if(custNo >= 1000 && custNo <= 9999){
  14. System.out.println("\n已錄入的會員信息是: ");
  15. System.out.println(custNo + "\t" + custBirth + "\t" + custScore);
  16. }else{
  17. System.out.println("\n客戶號" + custNo + "是無效會員號!");
  18. System.out.println("錄入信息失敗!");
  19. }
  20. }
  21. }

3 多重選擇結構

3.1 為什么使用多重if選擇結構

問題: 對學員的結業考試成績評測
  • 成績>=80 :良好
  • 成績>=60 :中等
  • 成績<60   :差
 





分析
  • 單個if選擇結構無法完成
  • 多個if選擇結構很麻煩
    
    
    
            
  1. if(score>=80) syso....
  2. if(score>=60&&score< 80)..
  3. if(score<60)....

3.2 什么是多重if選擇結構

  •  語法
   
   
   
           
  1. if ( 成績>=80) {
  2. //代碼塊1
  3. }
  4. else if (成績>=60) {
  5. //代碼塊2
  6. }
  7. ...
  8. else {
  9. //代碼塊3
  10. }

  • 示例:使用多重if實現學員的結業考試成績評測
   
   
   
           
  1. int score = 70; //考試成績
  2. if (score >= 80 ) {
  3. System.out.println("良好");
  4. } else if (score >= 60 ) {
  5. System.out.println("中等");
  6. } else {
  7. System.out.println("差");
  8. }

3.3 如何使用多重if選擇結構

  • 問題:我想買車,買什么車決定於我在銀行有多少存款
    • 如果我的存款超過500萬,我就買凱迪拉克
    • 否則,如果我的存款超過100萬,我就買帕薩特
    • 否則,如果我的存款超過50萬,我就買依蘭特
    • 否則,如果我的存款超過10萬,我就買奧托
    • 否則,如果我的存款10萬以下 ,我買捷安特
  • 實現
    
    
    
            
  1. int money = 52; // 我的存款,單位:萬元
  2. if (money >= 500) {
  3. System.out.println("太好了,我可以買凱迪拉克");
  4. } else if (money >= 100) {
  5. System.out.println("不錯,我可以買輛帕薩特");
  6. } else if (money >= 50) {
  7. System.out.println("我可以買輛依蘭特");
  8. } else if (money >= 10) {
  9. System.out.println("至少我可以買個奧托");
  10. } else {
  11. System.out.println("看來,我只能買個捷安特了");
  12. }

4 嵌套if選擇結構

4.1 為什么使用嵌套if選擇結構

  • 問題:
    學校舉行運動會,百米賽跑跑入10秒內的學生有資格進決賽,根據性別分別進入男子組和女子組
  • 分析
    • 判斷是否能夠進入決賽
    • 在確定進入決賽的情況下,判斷是進入男子組,還是進入女子組

4.2 嵌套if選擇結構

  • 語法
   
   
   
           
  1. if(條件1) {
  2. if(條件2) {
  3. 代碼塊1
  4. } else {
  5. 代碼塊2
  6. }
  7. } else {
  8. 代碼塊3
  9. }

  • 示例:使用嵌套if選擇結構解決問題6
    
    
    
            
  1. public class RunningMatch {
  2. public static void main(String[] args) {
  3. System.out.println("請輸入比賽成績:");
  4. Scanner input = new Scanner(System.in);
  5. double score = input.nextDouble();
  6. System.out.println("請輸出性別");
  7. String gender = input.next();
  8. if(score<=10){
  9. if(gender.equals("男")){
  10. System.out.println("進入男子組決賽!");
  11. }else if(gender.equals("女")){
  12. System.out.println("進入女子組決賽!");
  13. }
  14. }else{
  15. System.out.println("淘汰!");
  16. }
  17. }
  18. }

5 if結構的書寫規范

  • 為了使 if 結構更加清晰、避免執行錯誤,應該把每個 if 或 else 包含的代碼塊都用大括號括起來
  • 相匹配的一對 if 和 else 應該左對齊
  • 內層的 if 結構相對於外層的 if 結構要有一定的縮進

6 練習:輸入小明的考試成績,顯示所獲獎勵

需求
  • 成績==100分,爸爸給他買輛車
  • 成績>=90分,媽媽給他買MP4
  • 90分>成績>=60分,媽媽給他買本參考書
  • 成績<60分,什么都不買
實現
    
    
    
            
  1. public class ScoreTest {
  2. public static void main(String[] args) {
  3. Scanner input = new Scanner(System.in);
  4. int score = input.nextInt(); // 接收成績
  5. if (score == 100) {
  6. System.out.println("他爸爸給他買輛車");
  7. } else if (score >= 90) {
  8. System.out.println("他媽媽給他買MP4");
  9. } else if (score < 90 && score >= 60) {
  10. System.out.println("他媽媽給他買本參考書");
  11. } else {
  12. System.out.println("什么都不買");
  13. }
  14. }
  15. }

三、總結

1、Java中的if選擇結構,包括以下形式
  • 基本if選擇結構:可以處理單一或組合條件的情況
  • if-else選擇結構:可以處理簡單的條件分支情況
  • 多重if選擇結構:可以處理分段的條件分支情況
  • 嵌套if選擇結構:可以處理復雜的條件分支情況
2、邏輯運算符



關注我們


捐贈我們

    良師益友工作室一直在致力於幫助編程愛好更加快速方便地學習編程,如果您對我們的成果表示認同並且覺得對你有所幫助,歡迎您對我們捐贈^_^。
    

















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM