0Pricing
Java Academy · บทเรียน

switch แบบลูกศร

ใช้ไวยากรณ์ switch แบบลูกศรสมัยใหม่

switch แบบลูกศร เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

ปัญหาคำสั่งสลับแบบเดิม

คำสั่ง switch แบบคลาสสิกของ Java ใช้ป้ายกำกับที่มีเครื่องหมายทวิภาค และกำหนดให้ใส่ break หลังแต่ละกรณี การลืม break ทำให้เกิดข้อผิดพลาดจากการไหลต่อไปยังกรณีถัดไป ซึ่งการทำงานจะเลื่อนไปยังกรณีถัดไปโดยไม่ตั้งใจ

Java สมัยใหม่ (14 ขึ้นไป) นำเสนอ ไวยากรณ์ลูกศรที่แก้ปัญหานี้ได้ทั้งหมด

พื้นฐานไวยากรณ์ลูกศร

สำหรับ switch แบบลูกศร ป้ายกำกับแต่ละรายการใช้ -> แทน : จึงไม่มีการไหลต่อไปยังกรณีถัดไป และไม่จำเป็นต้องใช้ break แต่ละสาขาจะทำงานเฉพาะคำสั่งของตนเองเท่านั้น

public class Main {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1 -> System.out.println("Monday");
            case 3 -> System.out.println("Wednesday");
            default -> System.out.println("Other day");
        }
    }
}

ไม่ต้องใช้ break อีกต่อไป

ในรูปแบบเดิม คุณต้องเขียน break; หลังแต่ละกรณี รูปแบบลูกศรตัดภาระนี้ออกไปทั้งหมด โดยจะทำงานเฉพาะสาขาที่ตรงกันเท่านั้น

public class Main {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade) {
            case 'A' -> System.out.println("Excellent");
            case 'B' -> System.out.println("Good");
            case 'C' -> System.out.println("Average");
            default -> System.out.println("Needs work");
        }
    }
}

เนื้อหาสาขาแบบบล็อก

เมื่อสาขาต้องมีคำสั่งมากกว่าหนึ่งคำสั่ง ให้ครอบคำสั่งเหล่านั้นด้วยวงเล็บปีกกา { } บล็อกสามารถมีคำสั่งได้กี่คำสั่งก็ได้

public class Main {
    public static void main(String[] args) {
        int code = 2;
        switch (code) {
            case 2 -> {
                System.out.println("Processing code 2");
                System.out.println("Done");
            }
            default -> System.out.println("Unknown");
        }
    }
}

การใช้คำสั่งสลับกับ String

switch แบบลูกศรทำงานกับค่า String ได้เช่นเดียวกับรูปแบบเดิม การเปรียบเทียบจะใช้ equals ภายใน ดังนั้นจึงแยกแยะตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

public class Main {
    public static void main(String[] args) {
        String fruit = "apple";
        switch (fruit) {
            case "apple" -> System.out.println("Red or green");
            case "banana" -> System.out.println("Yellow");
            default -> System.out.println("Unknown fruit");
        }
    }
}

สาขาเริ่มต้น

สาขา default จะจัดการค่าที่ไม่ตรงกับกรณีอื่น แนวทางที่ดีคือควรใส่สาขานี้ไว้เสมอ เพื่อจัดการข้อมูลเข้าที่ไม่คาดคิดได้อย่างเหมาะสม

public class Main {
    public static void main(String[] args) {
        int level = 99;
        switch (level) {
            case 1 -> System.out.println("Beginner");
            case 2 -> System.out.println("Intermediate");
            default -> System.out.println("Unknown level: " + level);
        }
    }
}

การใช้คำสั่งสลับกับชนิดแจกแจง

switch แบบลูกศรเข้าคู่กับชนิด enum ได้เป็นอย่างดี คุณสามารถละชื่อชนิดแจกแจงที่เป็นคำนำหน้าของป้ายกำกับแต่ละรายการได้ ทำให้สาขาสั้นและอ่านง่าย

public class Main {
    enum Color { RED, GREEN, BLUE }
    public static void main(String[] args) {
        Color c = Color.GREEN;
        switch (c) {
            case RED -> System.out.println("Stop");
            case GREEN -> System.out.println("Go");
            case BLUE -> System.out.println("Calm");
        }
    }
}

การเรียกใช้เมธอดในสาขา

สาขาลูกศรแต่ละสาขาสามารถเรียกใช้เมธอดใดก็ได้ วิธีนี้ทำให้ switch อ่านง่ายขึ้น โดยมอบหมายงานจริงไปให้ส่วนอื่นจัดการ

public class Main {
    static void greet(String who) {
        System.out.println("Hello, " + who);
    }
    public static void main(String[] args) {
        int who = 1;
        switch (who) {
            case 1 -> greet("Alice");
            case 2 -> greet("Bob");
            default -> greet("Stranger");
        }
    }
}

อ่านง่ายกว่า if-else

switch แบบลูกศรมักใช้แทนชุดคำสั่ง if-else ที่ยาวได้ เมื่อคุณเปรียบเทียบตัวแปรหนึ่งตัวกับค่าคงที่หลายค่า switch จะอ่านเข้าใจได้ชัดเจนกว่า

public class Main {
    public static void main(String[] args) {
        int month = 4;
        switch (month) {
            case 12, 1, 2 -> System.out.println("Winter");
            case 3, 4, 5 -> System.out.println("Spring");
            case 6, 7, 8 -> System.out.println("Summer");
            default -> System.out.println("Autumn");
        }
    }
}

ทำงานด้านผลข้างเคียงเท่านั้น

switch ที่เป็นคำสั่ง (ใช้รูปแบบลูกศรในที่นี้) จะดำเนินการต่าง ๆ แต่ไม่สร้างค่า หากต้องการส่งคืนค่า ให้ใช้ switch ที่เป็นนิพจน์ ซึ่งจะกล่าวถึงในบทเรียนถัดไป

public class Main {
    public static void main(String[] args) {
        int n = 5;
        switch (n % 2) {
            case 0 -> System.out.println(n + " is even");
            case 1 -> System.out.println(n + " is odd");
        }
    }
}

หลายค่า หนึ่งสาขา

หลายค่าสามารถใช้สาขาร่วมกันได้โดยคั่นด้วยเครื่องหมายจุลภาค นี่เป็นตัวอย่างเบื้องต้นของกรณีที่มีหลายป้ายกำกับ ซึ่งจะกล่าวถึงในภายหลัง

public class Main {
    public static void main(String[] args) {
        char c = 'e';
        switch (c) {
            case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
            default -> System.out.println("Consonant");
        }
    }
}

ตรวจสอบความเข้าใจ

ข้อได้เปรียบหลักของ switch แบบลูกศรเหนือรูปแบบเดิมที่ใช้เครื่องหมายทวิภาคคืออะไร

สรุป

คุณได้เรียนรู้ไวยากรณ์ switch แบบลูกศรสมัยใหม่ดังนี้

  • ใช้ -> แทน :
  • ไม่มีการไหลต่อไปยังกรณีถัดไป และไม่จำเป็นต้องใช้ break
  • ใช้วงเล็บปีกกา { } สำหรับสาขาที่มีหลายคำสั่ง
  • คั่นป้ายกำกับด้วยเครื่องหมายจุลภาคเพื่อใช้สาขาร่วมกัน
  • ใส่สาขา default ไว้เสมอ

คำถามที่พบบ่อย

บทเรียน “switch แบบลูกศร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “switch แบบลูกศร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “switch แบบลูกศร”

ใช้ไวยากรณ์ switch แบบลูกศรสมัยใหม่ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “switch แบบลูกศร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. switch แบบลูกศร
  2. switch เป็นนิพจน์
  3. คีย์เวิร์ด yield
  4. กรณีที่มีหลายป้ายกำกับ
← กลับไปที่ Java Academy