九天學會Java,第三天,選擇結構


選擇結構

  • 變量和數據類型,賦值和輸出
  • 算術運算
  • 選擇結構
  • 循環結構
  • 函數定義,函數調用
  • 變量作用域
  • 棧,程序運行的基石
  • 面向對象
  • 異常處理
  • 語言提供的公用包

上一節介紹了Java的算術運算,如加減乘除等,Java的運算規則跟四則運算一樣。這節我們介紹選擇結構

一般來說程序有三種結構:

  1. 順序結構
  2. 選擇結構
  3. 循環結構

程序至上而下逐行執行,一條語句執行完之后繼續執行下一條語句,如下圖所示:

image

選擇結構是根據條件的成立與否,再決定要執行哪些語句的一種結構。如果我沒記錯,現在中學階段都會學簡單的流程圖。

case1

先看最常見的選擇結構,如果判斷條件成立,執行語句1,執行完語句1之后到語句3.如果判斷條件不成立,執行語句2,執行完語句2之后執行語句3.

if (判斷條件) {
    語句1;
} else {
    語句2;
}
語句3

image

case2

還有一種常見的選擇結構,如果判斷條件成立,則執行主體語句。執行完主體語句之后執行其他語句。

if (判斷條件) {
     主體語句;
}
其他語句

image

/**
 * 本例子講解選擇結構
 * 同時也回顧之前的知識點
 */
public class ThirdLesson {

    public static void main(String[] args) {
        /**
         * 新建一個浮點型變量,名字叫score,70.1f是70.1浮點數的意思
         * 把70.1賦值給score
         * 一般軟件里,score是從外部輸入進來的,比如老師輸入你的分數
         */
        float score = 70.1f;
        /**
         * 如果score 大於等於60,則執行 System.out.println("You have passed the exam");
         * 然后執行System.out.println("程序繼續");
         *
         * 如果score 小於60,則執行System.out.println("You have failed the exam");
         * 然后執行System.out.println("程序繼續");
         * 
         * 請對照case1里的流程圖思考
         */
        if (score >= 60) {
            System.out.println("You have passed the exam");
        } else {
            System.out.println("You have failed the exam");
        }
        System.out.println("程序繼續");
        /**
         * 修改變量score的值
         * 把100賦值給score
         */
        score = 100f;
        /**
         * 如果score > 99,則執行System.out.println("我草,學霸啊");
         * 然后執行System.out.println("本示例結束");
         * 
         * 請對照case2里的流程圖思考
         */
        if (score > 99) {
            System.out.println("我草,學霸啊");
        }
        System.out.println("本示例結束");
    }
}


case3

case3是比較復雜的if elseif 結構

if (判斷條件1) {
    主體語句1;
} else if (判斷條件2) {
    主體語句2;
} else if (判斷條件3) {
    主體語句3;
} else {
    主體語句4
}

順着前面的講解,我們試着通過一個例子說明if elseif 的用法。

        score = 80f;
        if (score >= 100 /*判斷條件1*/) {
            System.out.println("哈哈,學霸呀"); /*執行語句1*/
        } else if (score >= 95 /*判斷條件2*/) {
            System.out.println("有成為學霸的潛質"); /*執行語句2*/
        } else if (score >= 90 /*判斷條件3*/) {
            System.out.println("小伙可謂之優秀"); /*執行語句3*/
        } else if (score >= 80 /*判斷條件4*/) {
            System.out.println("小伙成績還不錯,優良"); /*執行語句4*/
        } else if (score >= 60 /*判斷條件5*/) {
            System.out.println("小伙及格了"); /*執行語句5*/
        } else {
            System.out.println("不到60分,你他喵逗我呢"); /** 執行語句6 **/
        }
        /** 繼續執行 **/

這個例子應該會輸出/執行語句4/的"小伙成績還不錯,優良"
如果把score=80f,改成score=95f.會輸出 /執行語句2/ 的"有成為學霸的潛質"。
所以整個邏輯是先判斷 /判斷條件1/ 成不成立,如果成立則執行 /執行語句1/ 。 否則,判斷/判斷條件2/,
如果成立,則執行 /執行語句2/。 用邏輯圖來說明就是:

image

總結

  • 選擇結構使用if else語法,或者單獨使用if
  • if(){} else if {} else if{} else {} 表達了,如果,否則,否則,否則...

作業

(同時回顧前兩節的內容)

  • 定義一個int變量,給定一個值,比如是7,程序輸出該值是“偶數”還是“奇數”
  • 定義三個double變量,比如double chinese = 85f, double math = 80f...;值在初始化時給定,寫程序計算三門成績的平均分,如果平均大於60分,輸出及格,如果大於80分輸出優良,大於90分輸出優秀,否則就輸出不及格

完整章節


免責聲明!

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



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