• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java教程
    Java標識符與關鍵字
    Java變量
    Java數據類型
    Java運算符
    Java控制語句
    Java方法
    Java面向對象
    Java對象的創建和使用
    Java封裝
    Java中static和this
    Java繼承
    Java方法覆蓋和多態
    Java super
    Java基礎練習題

    Java選擇語句if

     

     

    選擇語句又稱為分支語句,它通過對給定的條件進行判斷,從而決定執行兩個或多個分支中的哪一支。因此,在編寫選擇語句之前,應該首先明確判斷條件是什么,并確定當判斷結果為“真”或“假”時應分別執行什么樣的操作/算法。在Java語言中選擇語句主要提供了兩個,一個是if語句,另一個則是switch語句,我們先來看if語句。

     

    if語句的編寫方式我歸納為以下四種,請看下圖:

     

    圖6-1:if語句語法格式

     

    if語句是非常簡單容易理解的,if被翻譯為如果,else被翻譯為其它,我們針對以上第二種寫法進行說明:如果布爾表達式的結果是“真”,則執行它后面的分支,反之則執行else對應的分支。好比說“如果外面下雨了(真),出門則拿一把雨傘,反之則不帶雨傘”。再比如“如果你吃飽了(真)就不需要再吃了,反之則需要繼續吃東西”。那么以上兩個業務用代碼應該如何實現呢?請看下面程序:

     

    boolean raining = false;
    if(raining){
    	System.out.println("外面下雨了,出門記得帶一把傘哦!");
    }else{
    	System.out.println("天氣不錯哦!");
    }
    boolean eatFull = true;
    if(eatFull){
    	System.out.println("吃的好飽啊!");
    }else{
    	System.out.println("還沒有吃飽,再來份米飯!");
    }

     

    上圖中第一種寫法對應的原理圖:

     

    圖6-2:6-1圖中第一種寫法對應的原理圖

     

    上圖中第二種寫法對應的原理圖:

     

    圖6-3:6-1圖中第二種寫法對應的原理圖

     

    上圖中第三種寫法對應的原理圖:

     

    圖6-4:6-1圖中第三種寫法對應的原理圖

     

    上圖中第四種寫法對應的原理圖:

     

    圖6-5:6-1圖中第四種寫法對應的原理圖

     

    通過以上原理的分析,我們可以得出if語句的任何一種形式在執行的時候只要有一個分支執行,則所對應的整個if語句就全部結束了,換句話說,對于一個獨立的完整的if語句來說,最多只能有一個分支執行。

     

    另外,我們可以得出“圖6-1”中的四種寫法,其中第二種和第四種都帶有else分支,所以這兩種寫法我們可以確保肯定會有一個分支執行,另外兩種寫法則無法保證,也就是說第一種和第三種這兩種寫法可能一個分支都不會執行,這兩種寫法的分支是否執行取決于條件是否為true。

     

    還有,Java語言中有這樣一條規定:當分支中只有一條java語句話,大括號可以省略不寫,如以下程序:

     

    boolean sex = true;
    if(sex){
    	System.out.println("男");
    }else{
    	System.out.println("女");
    }
    //也可以這樣寫
    if(sex)
    	System.out.println("男");
    else
    	System.out.println("女");

     

    雖然大括號可以省略,但是大家編寫程序的時候一定要小心,分析以下程序錯在哪里?

     

    if(sex)
    	System.out.println("男");
    	System.out.println("hello world!");
    else
    	System.out.println("女");

     

    顯然if是沒有任何問題的,輸出“男”也是沒問題的,輸出“hello world!”也是正常的,只不過負責輸出“hello world!”的那一行代碼不在if語句的分支當中,那么下面的else則缺少了if語句而編譯報錯。換句話說,else以上的代碼都沒有問題,錯誤出現在else缺少了if。

     

    雖然java規定當分支中只有一條java語句的話大括號可以省略,但是為了程序具有很強的可讀性,所以建議在實際開發中還是不要省略大括號會比較好。

     

    那么,接下來我們給大家列舉幾個if語句的案例,幫助大家更好的理解和運用if語句。

     

    示例代碼1:業務背景:根據用戶輸入不同的數字來判斷用戶不同性別,當輸入1時性別為男,當輸入0時性別為女,輸入其它則不合法。

     

    java.util.Scanner scan = new java.util.Scanner(System.in);
    System.out.print("請輸入數字:");
    int i = scan.nextInt();
    if(i == 1){
    	System.out.println("性別:男");
    }else if(i == 0){
    	System.out.println("性別:女");
    }else{
    	System.out.println("對不起,您輸入不合法!");
    }

     

    示例代碼2:業務背景:鍵盤接收一個學生的成績,范圍在[0-100],根據成績判斷等級,[90-100]等級為“優秀”,[80-90)等級為“良好”,[70-80)等級為“中等”,[60-70)等級為“及格”,[0-60)等級為“大笨蛋”,輸入其它數字表示成績不合法。

     

    java.util.Scanner scan = new java.util.Scanner(System.in);
    System.out.print("輸入考試成績:");
    int score = scan.nextInt();
    if(score < 0 || score > 100){
    	System.out.println("對不起,您輸入的成績不合法!");
    }else if(score >= 90 && score <= 100){
    	System.out.println("成績等級:優秀");
    }else if(score < 90 && score >= 80){
    	System.out.println("成績等級:良好");
    }else if(score < 80 && score >= 70){
    	System.out.println("成績等級:中等");
    }else if(score < 70 && score >= 60){
    	System.out.println("成績等級:及格");
    }else if(score < 60 && score >= 0){
    	System.out.println("成績等級:大笨蛋");
    }

     

    對于初學者來說以上程序是可以的,但是對于老程序員來說,以上的代碼就太冗余了,我們將其進行優化,看以下代碼:

     

    java.util.Scanner scan = new java.util.Scanner(System.in);
    System.out.print("輸入考試成績:");
    int score = scan.nextInt();
    String grade = "大笨蛋";
    if(score < 0 || score > 100){
    	grade = "對不起,您輸入的成績不合法!";
    }else if(score >= 90){
    	grade = "優秀";
    }else if(score >= 80){
    	grade = "良好";
    }else if(score >= 70){
    	grade = "中等";
    }else if(score >= 60){
    	grade = "及格";
    }
    System.out.println("成績等級:" + grade);

     

    通過以上程序我們可以了解到一個功能的實現代碼有多種編寫形式,大家在學習的時候千萬別機械性的一行一行對抄代碼,實際上這種學習方法是非常痛苦,并且低效的,軟件開發主要培養的是編程思想/編程思路,使用編程的思路解決現實生活中的問題。當然,對于初學者來說我們不可能剛開始就寫出簡單而高效的程序,這需要不斷的模仿,不斷的積累,尤其我們可以多參考高手寫的程序(例如:JDK源代碼),當你的代碼達到一定量的時候,你就可以出山了。

     

    示例代碼3:業務背景:系統首先接收天氣參數,1表示下雨天,0表示晴天,如果天氣是晴天,輸出“走起,一起出去玩耍嘍!”,當天氣是下雨天,則繼續接收性別參數,1表示男,0表示女,當性別為女,則拿一把小花傘出去玩,當性別為男,則拿一把大黑傘出去玩。

     

    java.util.Scanner scann = new java.util.Scanner(System.in);
    System.out.print("請輸入天氣指數,1表示下雨天,0表示晴天:");
    int weather = scann.nextInt();
    if(weather == 1){
    	System.out.print("請再輸入您的性別,1表示男,0表示女:");
    	int sex = scann.nextInt();
    	if(sex == 0){
    		System.out.println("女士,外面下雨了,您需要帶一把小花傘");
    	}else if(sex == 1){
    		System.out.println("哥們,外面下雨了,您需要帶一把大黑傘");
    	}else{
    		System.out.println("對不起,您輸入性別參數出錯了!");
    	}
    }else if(weather == 0){
    	System.out.println("走起,一起出去玩耍嘍!");
    }else{
    	System.out.println("對不起,您輸入天氣參數出錯了!");
    }

     

    運行結果如下圖所示:

     

     

    圖6-6:if語句嵌套演示

     

    通過以上的程序我們得知,if語句是可以進行嵌套使用的,也就是說if語句的某個分支當中還可以繼續編寫其它if語句。實際上所有的控制語句都是可以進行嵌套使用的。語句嵌套這個知識點本來是不需要拿來進行特殊強調的,專門強調之后反而會讓初學者特殊對待,我希望大家不要特殊對待嵌套。雖然被嵌套的是一個控制語句,但這個控制語句也是一段普通的java程序,你說呢!如下圖:

     

    圖6-7:控制語句嵌套

     

    總之,選擇語句之if語句,在實際開發中使用頻率非常高,大家一定要掌握if語句的編寫方式以及運行原理,也可以自己想一些現實生活中的小例子加以練習。 

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏