Skip to Content

คำสั่ง Switch

วันนี้เรามาเรียนรู้เกี่ยวกับคำสั่ง Switch ใน Java กัน คำสั่ง Switch เป็นอีกวิธีหนึ่งในการควบคุมการทำงานของโปรแกรม โดยเฉพาะเมื่อเราต้องการตรวจสอบหลายๆ เงื่อนไขพร้อมกัน

คำสั่ง Switch คืออะไร?

คำสั่ง Switch เป็นเหมือนกับสวิตช์เปิด-ปิดไฟหลายๆ ดวงในบ้าน ที่เราสามารถเลือกเปิดไฟดวงใดดวงหนึ่งได้ตามต้องการ

ในการเขียนโปรแกรม คำสั่ง Switch ช่วยให้เราเลือกทำงานส่วนใดส่วนหนึ่งของโค้ด ขึ้นอยู่กับค่าของตัวแปรที่เรากำหนด

โครงสร้างของคำสั่ง Switch

switch (ตัวแปรที่ต้องการตรวจสอบ) { case ค่าที่ 1: // โค้ดที่จะทำงานเมื่อตัวแปรมีค่าเท่ากับค่าที่ 1 break; case ค่าที่ 2: // โค้ดที่จะทำงานเมื่อตัวแปรมีค่าเท่ากับค่าที่ 2 break; // ... cases อื่นๆ ... default: // โค้ดที่จะทำงานเมื่อไม่ตรงกับ case ใดเลย }

ตัวอย่างการใช้งาน Switch

สมมติว่าเรามีโปรแกรมที่แสดงวันในสัปดาห์ตามตัวเลขที่ผู้ใช้ป้อน:

int วัน = 3; switch (วัน) { case 1: System.out.println("วันจันทร์"); break; case 2: System.out.println("วันอังคาร"); break; case 3: System.out.println("วันพุธ"); break; case 4: System.out.println("วันพฤหัสบดี"); break; case 5: System.out.println("วันศุกร์"); break; case 6: System.out.println("วันเสาร์"); break; case 7: System.out.println("วันอาทิตย์"); break; default: System.out.println("ไม่พบวันที่ตรงกับตัวเลขนี้"); }

ในตัวอย่างนี้ โปรแกรมจะแสดง “วันพุธ” เพราะค่าของตัวแปร วัน เท่ากับ 3

ข้อควรระวังและเคล็ดลับ

  1. อย่าลืม break: ถ้าไม่ใส่ break โปรแกรมจะทำงานต่อไปยัง case ถัดไปโดยไม่ตรวจสอบเงื่อนไข
  2. default case: ใช้เมื่อต้องการจัดการกรณีที่ไม่ตรงกับ case ใดเลย
  3. ใช้กับตัวแปรประเภท: int, char, byte, short, String (ตั้งแต่ Java 7)
  4. Multiple cases: สามารถรวม cases ที่ต้องการให้ทำงานเหมือนกันได้

เปรียบเทียบกับ If-Else

คำสั่ง Switch มักใช้แทน if-else เมื่อมีหลายเงื่อนไขที่ต้องตรวจสอบ เพราะทำให้โค้ดอ่านง่ายและทำงานเร็วกว่าในบางกรณี

ตัวอย่างเปรียบเทียบ:

// ใช้ if-else if (วัน == 1) { System.out.println("วันจันทร์"); } else if (วัน == 2) { System.out.println("วันอังคาร"); } else if (วัน == 3) { System.out.println("วันพุธ"); } // ... และอื่นๆ // ใช้ switch (อ่านง่ายกว่า) switch (วัน) { case 1: System.out.println("วันจันทร์"); break; case 2: System.out.println("วันอังคาร"); break; case 3: System.out.println("วันพุธ"); break; // ... และอื่นๆ }

ตัวอย่างการใช้งานจริง

ลองมาดูตัวอย่างโปรแกรมคำนวณราคาตั๋วหนังตามวันในสัปดาห์กัน:

import java.util.Scanner; public class ราคาตั๋วหนัง { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("กรุณาใส่วันในสัปดาห์ (1-7): "); int วัน = scanner.nextInt(); int ราคา; switch (วัน) { case 1: case 2: case 3: case 4: ราคา = 120; // จันทร์ถึงพฤหัส ราคาปกติ break; case 5: ราคา = 150; // ศุกร์ ราคาสูงขึ้น break; case 6: case 7: ราคา = 180; // เสาร์และอาทิตย์ ราคาแพงสุด break; default: ราคา = 0; // วันไม่ถูกต้อง } if (ราคา != 0) { System.out.println("ราคาตั๋วหนังวันนี้คือ " + ราคา + " บาท"); } else { System.out.println("วันที่ใส่ไม่ถูกต้อง"); } scanner.close(); } }

สรุป

คำสั่ง Switch เป็นเครื่องมือที่มีประโยชน์มากในการจัดการกับเงื่อนไขหลายๆ อย่างในโปรแกรมของเรา ช่วยให้โค้ดอ่านง่ายและจัดการได้ง่ายขึ้น โดยเฉพาะเมื่อเทียบกับการใช้ if-else หลายๆ อัน

ปรับปรุงล่าสุด