Java流程控制03:選擇結構

if單選擇結構

  • 我們很多時候需要去判斷一個東西是否可行,然後我們纔去執行,這樣一個過程在程序中用if語句來表示
  • 語法

 if(布爾表達式){
         //如果布爾表達式爲true就執行
 }
  • 流程圖
    在這裏插入圖片描述
  • 示例
public class IfDemo {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);

        System.out.println("請輸入內容:");
        String str=scanner.nextLine();

        //equals:判斷字符串是否相等
        if(str.equals("Hello")){
            System.out.println(str);
        }

        System.out.println("END");
        scanner.close();
    }
}

if雙選擇結構

  • 那現在有個需求,公司要收購一個軟件,成功了,給人支付100萬元,失敗了,自己找人開發。這樣的需求用一個if就搞不定了,我們需要兩個判斷,需要一個雙選擇結構,所有就有了if-else結構。
  • 語法
        if(布爾表達式){
            //表達式爲true執行
        }else{
            //表達式爲false執行
        }
  • 流程圖
    在這裏插入圖片描述
  • 示例
public class IfDemo2 {
    public static void main(String[] args) {
        //考試分數大於60就是及格,小於60就是不及格

        Scanner scanner=new Scanner(System.in);

        System.out.println("請輸入考試分數:");

        double num=scanner.nextDouble();

        if(num>60){
            System.out.println("考試及格,分數爲:"+num);
        }else{
            System.out.println("考試不及格,分數爲:"+num);
        }
    }
}

if多選擇結構

  • 我們發現剛纔的代碼不符合實際情況,真是的情況還可能存在ABCD,存在區間多級判斷。比如90-100就是A,80-90就是B…等等,在生活中我們還有很多時候的選擇也不僅僅只有兩個,所有我們需要一個多選擇結構來處理這類問題!
  • 語法
        if (布爾表達式1) {
            //如果布爾表達式1的值爲true執行代碼
        } else if (布爾表達式2) {
            //如果布爾表達式2的值爲true執行代碼
        } else if (布爾表達式3) {
            //如果布爾表達式3的值爲true執行代碼
        } else {
           //如果以上布爾表達式的值都不爲true執行代碼
        }
  • 流程圖
    -
  • 示例
public class IfDemo3 {
    public static void main(String[] args) {
        //考試分數大於60就是及格,小於60就是不及格

        Scanner scanner=new Scanner(System.in);

        System.out.println("請輸入考試分數:");

        double num=scanner.nextDouble();

        /*
          if語句最多有一個else,else 語句在所有的else if語句之後。
          if語句可以有若干else if語句,它們必須在else語句之前。
          一旦其中一個else if語句檢測爲true,其他的else if以及else語句都將跳過。
         */

        if(num==100){
            System.out.println("恭喜滿分");
        }else if(num<100 && num>=90){
            System.out.println("A");
        }else if(num<90 && num>=80){
            System.out.println("B");
        }else if(num<80 && num>=70){
            System.out.println("C");
        }else if(num<70 && num>=60){
            System.out.println("D");
        }else if(num>0 && num<60){
            System.out.println("成績不及格");
        }else{
            System.out.println("成績不合法");
        }
    }
}

嵌套if結構

  • 使用嵌套if…else 語句是合法的。也就是說你可以在另外一個if或者else if語句中使用if或者else if語句。你可以像if語句一樣嵌套else if…else。
  • 語法
       if(表達式1){
            //表示式1爲true就執行
            if(表達式2){
                //表示式2爲true就執行
            }
        }
  • 示例
public class IfDemo4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入1-100裏的整數:");
        int num=scanner.nextInt();

        if(num<=100 && num>=1){
            if(num%1==0){
                System.out.println(num);
            }
        }else{
            System.out.println("輸入的整數不合法");
        }
    }
}

switch多選擇結構

  • 多選擇結構還有一個實現方式就是switch case語句。

  • switch case 語句判斷一個變量與一系列值中某個值是否相等,每一值稱爲一個分支。

  • switch 語句中的變量類型可以是:
    1. byte、short、int或者char。
    2. 從Java SE 7開始
    3. switch 支持字符串String類型了
    4. 同時case標籤必須爲字符串常量或字面量。

  • 語法
    在這裏插入圖片描述

  • 示例

public class SwitchDemo {

    public static void main(String[] args) {
        char grade = 'C';

        /*
         switch匹配一個具體的值,執行匹配case的裏面的語句,如果沒有break語句,就會繼續執行下面語句,直到執行完畢或者有break語句了爲止。
         每一個case裏面後面執行的語句記得 帶上break,不然會出現case穿透。
         如果沒有匹配到case的值,就會執行default下面的語句。
         */
        switch (grade) {
            case 'A':
                System.out.println("A");
                break; //可選  終止switch
            case 'B':
                System.out.println("B");
                break;
            case 'C':
                System.out.println("C");
                break;
            case 'D':
                System.out.println("D");
                break;
            default: //可選
                System.out.println("未知");
        }

    }
}
public class SwitchDemo2 {
    public static void main(String[] args) {
        String name="張三";

        //JDK7的新特性,表達式結果可以是字符串!!!
        //字符的本質還是數字

        //反編譯  java--class(字節碼)---反編譯(IDEA)
        switch (name){
            case "李四":
                System.out.println("name是李四");
                break;
            case "張三":
                System.out.println("name是張三");
                break;
            default:
                System.out.println("找不到name");
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章