คำสั่ง 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
ข้อควรระวังและเคล็ดลับ
- อย่าลืม break: ถ้าไม่ใส่
breakโปรแกรมจะทำงานต่อไปยัง case ถัดไปโดยไม่ตรวจสอบเงื่อนไข - default case: ใช้เมื่อต้องการจัดการกรณีที่ไม่ตรงกับ case ใดเลย
- ใช้กับตัวแปรประเภท: int, char, byte, short, String (ตั้งแต่ Java 7)
- 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 หลายๆ อัน