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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- switch แบบลูกศร
- switch เป็นนิพจน์
- คีย์เวิร์ด yield
- กรณีที่มีหลายป้ายกำกับ