คำสั่งเช็คเงื่อนไข คืออะไร?
คำสั่งเช็คเงื่อนไข (Condition statements) คือ คำสั่งที่ใช้สำหรับเลือกทำงานอย่างใดอย่างหนึ่งโดยใช้เงื่อนไขเป็นส่วนช่วยในการตัดสินใจ
ในภาษาจาวามีคำสั่งเช็คเงื่อนไข 2 รูปแบบ ได้แก่
1. คำสั่ง If-else
2. คำสั่ง Switch case
บทนี้ Matter Devs จะพาทุกคนไปเรียนรู้คำสั่งเช็คเงื่อนไขแต่ละอันกัน โดยเริ่มตั้งแต่คำสั่งง่ายที่สุดอย่าง If statements แต่ก่อนจะเริ่มอยากให้ทุกคนไปทบทวนเรื่องตัวดำเนินการเปรียบเทียบก่อนเพราะมักจะนำมาใช้กับคำสั่งเช็คเงื่อนไขเสมอ
If statements
การใช้คำสั่ง if โดยไม่มี else คือ การตัดสินใจว่าจะทำคำสั่งนั้นถ้าเงื่อนไขเป็นจริง ถ้าไม่เป็นจริงก็ไม่ทำ โดยมีรูปแบบดังนี้
if (condition) {
statements;
}
- condition คือ เงื่อนไขสำหรับตัดสินใจ
- statements คือ ชุดคำสั่งที่จะถูกทำเมื่อเงื่อนไขใน condition เป็นจริง
ตัวอย่างการใช้งาน
import java.util.Scanner; public class IfStatement { public static void main(String[] args) { Scanner kb = new Scanner(System.in); System.out.print("Enter your score : "); int score = kb.nextInt(); if(score >= 40){ System.out.println("ยินดีด้วย คุณสอบผ่าน"); } System.out.println("ขอให้โชคดี"); } }
จากตัวอย่างด้านบนเป็นการตรวจสอบคะแนน ถ้าคะแนนมากกว่าหรือเท่ากับ 40 ให้แสดงผล ยินดีด้วย คุณสอบผ่าน และ ขอให้โชคดี ตามลำดับ แต่ถ้าน้อยกว่า 40 จะข้ามไปแสดงผลว่า ขอให้โชคดี เลย
If-else statements
เมื่อมีทางเลือก 2 ทาง ให้ใช้คำสั่ง if-else เพื่อเลือกการทำงานอย่างใดอย่างหนึ่ง ถ้าเงื่อนไขเป็นจริงให้ทำงานใน if แต่ถ้าเงื่อนไขเป็นเท็จให้ทำงานใน else โดยมีรูปแบบดังนี้
if (condition) {
statements;
} else {
statements;
}
ตัวอย่างการใช้งาน
import java.util.Scanner; public class IfElseStatement { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print("Input Score1 : "); int score1 = in.nextInt(); System.out.print("Input Score2 : "); int score2 = in.nextInt(); int finalS = (score1 + score2); if(finalS>50){ System.out.println("ยินดีด้วย คุณสอบผ่าน"); } else { System.out.println("เสียใจด้วย คุณสอบตก"); } } }
จากตัวอย่างด้านบน เป็นการนำคะแนนสอบ 2 ครั้งมาบวกกัน ถ้าบวกกันแล้วมากกว่า 50 จะแสดงผลว่า ยินดีด้วย คุณสอบผ่าน แต่ถ้าคะแนนน้อยกว่าหรือเท่ากับ 50 จะแสดงผลว่า เสียใจด้วย คุณสอบตก
Else If statements
ใช้กรณีมีหลายเงื่อนไข และการทำงานในแต่ละอย่างแตกต่างกัน โดยมีรูปแบบดังนี้
if (condition1) {
statements;
} else if {
statements;
} else {
statements;
}
ตัวอย่างการใช้งาน
import java.util.Scanner; public class ElseIfStatement { public static void main(String[] args) { Scanner kb = new Scanner(System.in); System.out.print("enter your score: "); int score = kb.nextInt(); if(score >= 85){ System.out.println("A"); } else if(score >= 75){ System.out.println("B"); } else if(score >= 60){ System.out.println("C"); } else if(score >= 40){ System.out.println("D"); } else{ System.out.println("F"); } } }
เพื่อทดสอบความเข้าใจ เราจะลองให้คุณเขียนโปรแกรมโดยรับค่าอุณหภูมิจากผู้ใช้ และแสดงผลตามที่กำหนดไว้ด้านล่าง โดยใช้คำสั่ง else if (มีเฉลยท้ายบท)
- T <= 0 “It’s very very cold”
- 0 < T <= 10 “It’s cold”
- 10 < T <= 20 “It’s cool out”
- 20 < T <= 30 “It’s warm”
- T > 30 “It’s hot”
Switch case
คำสั่ง switch ใช้กรณีที่มีเงื่อนไขหลายๆกลุ่ม โดยจะเลือกทำงานของเงื่อนไขที่ตรงกันเพียงแค่เงื่อนไขเดียวเท่านั้น มีรูปแบบดังนี้
switch (condition) {
case x : statements; break;
case y : statements; break;
default : statements;
}
- switch – เราจะใส่เงื่อนไขที่ถูกนำมาคิดโดยผลต้องเป็น int หรือ char เท่านั้น
- case – ค่าที่อยู่ใน case ถ้าตรงกับเงื่อนไขใน switch คำสั่งที่อยู่ใน case นั้นจะทำงาน
- break – เป็นคำสั่งที่ใช้ในการออกจาก switch
- default – เมื่อไม่ตรงกับ case ไหนเลยจะมาทำคำสั่งที่ default แทน
ตัวอย่างการใช้งาน
public class Switch { public static void main(String[] args) { char grade = 'A'; switch (grade) { case 'A': System.out.println("Excellent"); break; case 'B': System.out.println("Good"); break; case 'C': System.out.println("So So"); break; case 'D': System.out.println("Fails"); break; case 'F': System.out.println("Get lost"); break; default: System.out.println("Invalid"); } } } //output "Excellent"
คำสั่ง break ถูกใช้เพื่อให้โปรแกรมกระโดดข้ามการทำงานในคำสั่ง switch แล้วไปทำคำสั่งแรกที่ตามหลังคำสั่ง switch คำถามคือ ถ้าไม่ใส่คำสั่ง break จะเกิดอะไรขึ้น? คำตอบคือ ถ้าสมมติเรากำหนด grade = ‘D’ ผลลัพธ์ของโปรแกรมจะเป็น
Fails
Get lost
Invalid
เฉลยแบบฝึกหัด
import java.util.Scanner; public class Temperature { public static void main(String[] args) { Scanner kb = new Scanner(System.in); System.out.print("enter temperature: "); float temp = kb.nextFloat(); if (temp <= 0){ System.out.println("It's very very cold"); } else if (temp > 0 && temp <= 10) { System.out.println("It's cold"); } else if (temp > 10 && temp <= 20) { System.out.println("It's cool out"); } else if (temp > 20 && temp <= 30) { System.out.println("It's warm"); } else { System.out.println("It's hot"); } } }
บทนี้เราได้เรียนรู้เกี่ยวกับคำสั่งเช็คเงื่อนไขแล้ว ในบทถัดไปเราจะเรียนเรื่องคำสั่งวนซ้ำ for,do-while,while ในภาษาจาวากัน