คำสั่งเงื่อนไข (Conditional statements) เป็นฟีเจอร์พื้นฐานทุกภาษา ใช้ควบคุมโฟลว์ของโปรแกรม ใน Java มี if...else ควบคุมตามเงื่อนไข
นอกจากนี้ Java มี switch statement ประเมิน expression กับหลาย cases ถ้า statement match case ไหน บล็อกโค้ดของ case นั้นจะรัน
บทช่วยสอนนี้อธิบายการใช้ switch statement ใน Java และ keyword default, case, break พร้อมตัวอย่าง
บทนำ: คำสั่งเงื่อนไข (Conditional Statements)
Conditional statements ให้โปรแกรมรันโค้ดเมื่อเงื่อนไขเป็น True เช่น รันบล็อกโค้ดก็ต่อเมื่อตัวแปร name มีตัว 'F'
ใน Java มี 2 แบบควบคุมโฟลว์: if...else และ switch
if...else รันบล็อกโค้ดถ้าเงื่อนไข true ตัวอย่าง:
if (15 > 5) {
System.out.println("15 is greater than 5.");
};
ผลลัพธ์: 15 is greater than 5. ยังมี else (รันถ้าทุกเงื่อนไข false) และ else...if (เช็คเงื่อนไขใหม่ถ้าแรก false)
switch ก็ใช้ประเมินเงื่อนไขได้เช่นกัน
Switch Statement ใน Java
Java switch ประเมิน statement กับ 1 หรือหลาย conditions รันบล็อกโค้ดที่ match condition เป็น true มี case statement ระบุเงื่อนไข ไวยากรณ์:
switch(expression) {
case a: break;
case b: break;
case c: break;
default: break;
}
การทำงาน: expression ใน switch ประเมิน 1 ครั้ง เปรียบเทียบค่ากับแต่ละ case จากบนลงล่าง match -> รันโค้ด case นั้น ไม่ match -> ไป case ถัดไป ไม่มี case ไหน match -> รัน default
ตัวอย่าง: โปรแกรมบอกชื่อเดือน
สร้างโปรแกรมบอกชื่อเดือนจากค่าตัวเลข (1-6 เท่านั้น) ใช้ java.time.LocalDate ดึงค่าเดือนปัจจุบัน 1=มกราคม 2=กุมภาพันธ์ ...
โค้ดดึงค่าเดือน:
LocalDate today = LocalDate.now(); int month = today.getMonthValue(); System.out.println(month);
ผลลัพธ์: 2 (เขียนในเดือนกุมภาพันธ์)
ใช้ switch ส่งข้อความชื่อเดือน ตามค่าตัวเลข โปรแกรมรันบนลงล่าง หา match เจอ -> break หยุด switch
LocalDate today = LocalDate.now();
int month = today.getMonthValue();
switch (month) {
case 1: System.out.println("January"); break;
case 2: System.out.println("February"); break;
case 3: System.out.println("March"); break;
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
}
รัน -> ได้ February เพราะ month=2 match case 2 พิมพ์ February แล้ว break หยุด ถ้าเป็นเดือนพฤษภาคม (month=5) -> พิมพ์ May
Break Keyword
break หยุดรันโค้ดใน switch block ทันที รันโปรแกรมต่อไป สำคัญเพราะหยุดไม่ให้เช็ค case ต่อไป ประหยัดเวลา ควรวาง break ท้ายทุก case
case 4: System.out.println("April"); break;
Default Keyword
default ระบุโค้ดรันเมื่อไม่มี case ไหน match ตัวอย่างก่อนหน้าทำงานแค่ 1-6 ถ้าต้องการข้อความ default "It's after June" เมื่อเกินเดือนมิถุนายน
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
default: System.out.println("It's after June!"); break;
ถ้าเป็นเดือนกรกฎาคม (month=7) ไม่มี case match -> รัน default พิมพ์ "It's after June!"
สรุป
Java switch statement ประเมิน statement กับหลาย cases รันโค้ดเมื่อ case ไหน match เป็นรูปแบบ conditional statement ควบคุมโฟลว์โปรแกรม บทช่วยสอนนี้อธิบาย switch, case, break, default พร้อมตัวอย่าง ตอนนี้คุณใช้ switch statement ใน Java ได้อย่างมืออาชีพแล้ว!