1. 程式人生 > 實用技巧 >人生苦短我學Java-4-if語句邏輯判斷/switch case語句

人生苦短我學Java-4-if語句邏輯判斷/switch case語句

一、邏輯判斷if語句

1、格式一:if

if (條件){

  執行表示式

}

2、格式二:if else

if (條件){

  執行表示式

}else{

  執行表示式

}

3、格式三:if...else if ... else

if (條件){

  執行表示式

}else if{

  執行表示式

}else{

  執行表示式

}

public class If {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        // 第一種
        if (a < b) {
            System.out.println(
"a<b"); } // 第二種 if (a > b) { System.out.println("a>b"); } else { System.out.println("a<b 且a!=b"); } // 第三種 if (a > b) { System.out.println("a>b"); } else if (a == b) { System.out.println(
"a==b"); } else { System.out.println("a<b 且a!=b"); } } }

二、獲取輸入

1、匯入Scanner

import java.util.Scanner;  // 匯入包

Scanner scan = new Scanner(System.in);  // 例項化物件

int is_Gao = scan.nextInt();        // 獲取int型別的資料,當然還有其它型別

2、練習例子:

import java.util.Scanner;

public class Test1211 {
    
public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("請輸入您的身高:(cm)"); int is_Gao = scan.nextInt(); // 身高 System.out.println("請輸入您的財富:(千萬)"); double is_money = scan.nextDouble(); // 財務 System.out.println("請輸入您是否帥:(是或否)"); String is_Shu = scan.next(); // 是否帥 if (is_Gao >= 180 && is_money >= 1 && is_Shu.equals("是")) { System.out.println("我一定要嫁給他"); } else if (is_Gao >= 180 || is_money >= 1 || is_Shu.equals("是")) { System.out.println("比上不足,比下有餘,還是嫁給他吧"); } else { System.out.println("不用想了,不嫁"); } } }

三、switch case 語句

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

1、規則

switch case 語句有如下規則:

  • switch 語句中的變數型別可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支援字串 String 型別了,同時 case 標籤必須為字串常量或字面量。

  • switch 語句可以擁有多個 case 語句。每個 case 後面跟一個要比較的值和冒號。

  • case 語句中的值的資料型別必須與變數的資料型別相同,而且只能是常量或者字面常量

  • 當變數的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現才會跳出 switch 語句。

  • 當遇到 break 語句時,switch 語句終止。程式跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程式會繼續執行下一條 case 語句,直到出現 break 語句。

  • switch 語句可以包含一個 default 分支,該分支一般是 switch 語句的最後一個分支(可以在任何位置,但建議在最後一個)。default 在沒有 case 語句的值和變數值相等的時候執行。default 分支不需要 break 語句。

2、例子:如果 case 語句塊中沒有 break 語句時,JVM 並不會順序輸出每一個 case 對應的返回值,而是繼續匹配,匹配不成功則返回預設 case。

public class Switch {
    public static void main(String[] args) {
        String num = "4";
        switch (num) {
            case "0":
                System.out.println("0000");
            case "1":
                System.out.println("1111");
            case "2":
                System.out.println("2222");
//                break;
            case "3":
                System.out.println("3333");
            case "4":
                System.out.println("4444");
        }
    }
}

輸出:4444

3、例子:如果 case 語句塊中沒有 break 語句時,匹配成功後從當前 case 開始,後續所有 case 的值都會輸出。

public class Switch {
    public static void main(String[] args) {
        String num = "2";
        switch (num) {
            case "0":
                System.out.println("0000");
            case "1":
                System.out.println("1111");
            case "2":
                System.out.println("2222");
//                break;
            case "3":
                System.out.println("3333");
            case "4":
                System.out.println("4444");
        }
    }
}

4、例子:break,匹配成功後,不在執行後面的case

5、default相當於所有case都不匹配時,變回執行default的表示式。

public class Switch {
    public static void main(String[] args) {
        //⒉.對學生成績大於60分的,輸出“合格”。低於60分的,輸出“不合格”。
        int score = 88;
        switch (score / 60) {
            case 0:
                System.out.println("不及格");
                break;
            case 1:
                System.out.println("及格");
                break;
            default:
                System.out.println("請確認您的分數範圍是否為0-100?");
        }
    }
}

switch case練習:從鍵盤上輸入2019年的"month”和"day",要求通過程式輸出輸入的日期為2019年的第幾天。

package com.ppl.helloword.demo;

/*
@USER PPL-泡泡龍 or 廣深小龍
@date 2020-12-12 16:58
*/

import java.util.Scanner;

public class Test1212 {
    // 從鍵盤上輸入2019年的"month”和"day",要求通過程式輸出輸入的日期為2019年的第幾天。
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入月份");
        int moth = scan.nextInt();
        System.out.println("請輸入日期");
        int day = scan.nextInt();
        int resDays = 0;

        switch (moth) {
            case 12:
                resDays += 30;
            case 11:
                resDays += 31;
            case 10:
                resDays += 30;
            case 9:
                resDays += 31;
            case 8:
                resDays += 31;
            case 7:
                resDays += 30;
            case 6:
                resDays += 31;
            case 5:
                resDays += 30;
            case 4:
                resDays += 31;
            case 3:
                resDays += 31;
            case 2:
                resDays += 28;
            case 1:
                resDays += day;
        }
        System.out.println(moth + "月" + day + "日" + "是當年的第 " + " " + resDays + "天");
    }
}

說明:
1.凡是可以使用switch-case的結構,都可以轉換為if-else。反之,不成立。
2.我們寫分支結構時,當發現既可以使用switch-case,(同時,switch中表達式的取值情況不太多),又可以使用if-else時,我們優先選擇使用switch-case。原因: switch-case執行效率稍高。

最後歡迎來大家QQ交流群一起學習:482713805