ตัวดำเนินการ (Operators)
วันนี้เราจะมาเรียนรู้เกี่ยวกับตัวดำเนินการ หรือ Operators ใน Java กัน ตัวดำเนินการเป็นสัญลักษณ์พิเศษที่ใช้ในการคำนวณหรือเปรียบเทียบค่าต่างๆ
ประเภทของตัวดำเนินการ
- ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators)
- ตัวดำเนินการเปรียบเทียบ (Comparison Operators)
- ตัวดำเนินการทางตรรกะ (Logical Operators)
- ตัวดำเนินการแบบย่อ (Shorthand Operators)
1. ตัวดำเนินการทางคณิตศาสตร์ 🧮
ใช้สำหรับการคำนวณทางคณิตศาสตร์พื้นฐาน:
+(บวก):int ผลบวก = 5 + 3; // ผลบวก = 8-(ลบ):int ผลลบ = 10 - 4; // ผลลบ = 6*(คูณ):int ผลคูณ = 3 * 4; // ผลคูณ = 12/(หาร):int ผลหาร = 15 / 3; // ผลหาร = 5%(หารเอาเศษ):int เศษ = 17 % 5; // เศษ = 2
ตัวอย่าง:
int ก = 10;
int ข = 3;
System.out.println("ก + ข = " + (ก + ข)); // แสดง: ก + ข = 13
System.out.println("ก - ข = " + (ก - ข)); // แสดง: ก - ข = 7
System.out.println("ก * ข = " + (ก * ข)); // แสดง: ก * ข = 30
System.out.println("ก / ข = " + (ก / ข)); // แสดง: ก / ข = 3
System.out.println("ก % ข = " + (ก % ข)); // แสดง: ก % ข = 12. ตัวดำเนินการเปรียบเทียบ 🤔
ใช้เปรียบเทียบค่า ผลลัพธ์จะเป็น true (จริง) หรือ false (เท็จ):
==(เท่ากับ):5 == 5ให้ผลเป็นtrue!=(ไม่เท่ากับ):5 != 3ให้ผลเป็นtrue>(มากกว่า):10 > 5ให้ผลเป็นtrue<(น้อยกว่า):3 < 7ให้ผลเป็นtrue>=(มากกว่าหรือเท่ากับ):5 >= 5ให้ผลเป็นtrue<=(น้อยกว่าหรือเท่ากับ):5 <= 5ให้ผลเป็นtrue
ตัวอย่าง:
int อายุ = 18;
System.out.println("อายุมากกว่า 20 ปีหรือเปล่า? " + (อายุ > 20)); // แสดง: false
System.out.println("อายุเท่ากับ 18 ปีใช่ไหม? " + (อายุ == 18)); // แสดง: true3. ตัวดำเนินการทางตรรกะ 🧠
ใช้รวมหรือเปรียบเทียบเงื่อนไขหลายๆ อย่างพร้อมกัน:
&&(และ): ทั้งสองเงื่อนไขต้องเป็นจริง||(หรือ): อย่างน้อยหนึ่งเงื่อนไขต้องเป็นจริง!(ไม่): กลับค่าจากจริงเป็นเท็จ หรือจากเท็จเป็นจริง
ตัวอย่าง:
int อายุ = 25;
boolean มีบัตรประชาชน = true;
boolean สามารถเข้าผับได้ = (อายุ >= 20) && มีบัตรประชาชน;
System.out.println("สามารถเข้าผับได้ไหม? " + สามารถเข้าผับได้); // แสดง: true
boolean เป็นเด็ก = !(อายุ >= 18);
System.out.println("เป็นเด็กหรือเปล่า? " + เป็นเด็ก); // แสดง: false4. ตัวดำเนินการแบบย่อ (Shorthand Operators)
ตัวดำเนินการแบบย่อช่วยให้เราเขียนโค้ดได้สั้นลงและอ่านง่ายขึ้น:
+=: เพิ่มค่าและกำหนดค่าใหม่-=: ลดค่าและกำหนดค่าใหม่*=: คูณค่าและกำหนดค่าใหม่/=: หารค่าและกำหนดค่าใหม่++: เพิ่มค่าขึ้น 1 (increment)--: ลดค่าลง 1 (decrement)
ตัวอย่าง:
int คะแนน = 10;
คะแนน += 5; // เท่ากับ คะแนน = คะแนน + 5;
System.out.println("คะแนนหลังเพิ่ม: " + คะแนน); // แสดง: 15
คะแนน -= 3; // เท่ากับ คะแนน = คะแนน - 3;
System.out.println("คะแนนหลังลด: " + คะแนน); // แสดง: 12
คะแนน *= 2; // เท่ากับ คะแนน = คะแนน * 2;
System.out.println("คะแนนหลังคูณ: " + คะแนน); // แสดง: 24
คะแนน /= 4; // เท่ากับ คะแนน = คะแนน / 4;
System.out.println("คะแนนหลังหาร: " + คะแนน); // แสดง: 6
คะแนน++; // เท่ากับ คะแนน = คะแนน + 1;
System.out.println("คะแนนหลังเพิ่ม 1: " + คะแนน); // แสดง: 7
คะแนน--; // เท่ากับ คะแนน = คะแนน - 1;
System.out.println("คะแนนหลังลด 1: " + คะแนน); // แสดง: 6ข้อควรระวังเกี่ยวกับตัวดำเนินการ
- ระวังการหารด้วยศูนย์ เพราะจะทำให้เกิด
ArithmeticException - ตัวดำเนินการ
==ใช้เปรียบเทียบค่าของตัวแปรพื้นฐาน (primitive types) แต่สำหรับออบเจ็กต์ควรใช้เมธอดequals() - ตัวดำเนินการ
++และ--สามารถใช้ได้ทั้งก่อนและหลังตัวแปร (++iหรือi++) ซึ่งให้ผลลัพธ์ต่างกัน
ตัวอย่างการใช้งานจริง
ลองมาดูตัวอย่างโปรแกรมคำนวณเกรดอย่างง่ายโดยใช้ตัวดำเนินการต่างๆ กัน:
public class คำนวณเกรด {
public static void main(String[] args) {
int คะแนนสอบ = 75;
int คะแนนการบ้าน = 85;
int คะแนนโปรเจค = 90;
// คำนวณคะแนนรวม (คะแนนสอบ 50%, การบ้าน 20%, โปรเจค 30%)
double คะแนนรวม = (คะแนนสอบ * 0.5) + (คะแนนการบ้าน * 0.2) + (คะแนนโปรเจค * 0.3);
System.out.println("คะแนนรวม: " + คะแนนรวม);
// ตัดเกรดโดยใช้ตัวดำเนินการเปรียบเทียบและตรรกะ
String เกรด;
if (คะแนนรวม >= 80 && คะแนนรวม <= 100) {
เกรด = "A";
} else if (คะแนนรวม >= 70 && คะแนนรวม < 80) {
เกรด = "B";
} else if (คะแนนรวม >= 60 && คะแนนรวม < 70) {
เกรด = "C";
} else if (คะแนนรวม >= 50 && คะแนนรวม < 60) {
เกรด = "D";
} else {
เกรด = "F";
}
System.out.println("เกรดของคุณคือ: " + เกรด);
// ใช้ตัวดำเนินการแบบย่อเพื่อปรับคะแนน
if (เกรด.equals("F")) {
คะแนนรวม += 5; // เพิ่มคะแนนพิเศษ 5 คะแนนสำหรับนักเรียนที่ได้เกรด F
System.out.println("คะแนนรวมหลังปรับ: " + คะแนนรวม);
}
}
}สรุป
ตัวดำเนินการใน Java มีหลากหลายประเภทและใช้งานในสถานการณ์ต่างๆ การเข้าใจและใช้งานตัวดำเนินการอย่างถูกต้องจะช่วยให้คุณเขียนโปรแกรมได้อย่างมีประสิทธิภาพและยืดหยุ่นมากขึ้น
ปรับปรุงล่าสุด