Skip to Content

ตัวดำเนินการ (Operators)

วันนี้เราจะมาเรียนรู้เกี่ยวกับตัวดำเนินการ หรือ Operators ใน Java กัน ตัวดำเนินการเป็นสัญลักษณ์พิเศษที่ใช้ในการคำนวณหรือเปรียบเทียบค่าต่างๆ

ประเภทของตัวดำเนินการ

  1. ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators)
  2. ตัวดำเนินการเปรียบเทียบ (Comparison Operators)
  3. ตัวดำเนินการทางตรรกะ (Logical Operators)
  4. ตัวดำเนินการแบบย่อ (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("ก % ข = " + (ก % ข)); // แสดง: ก % ข = 1

2. ตัวดำเนินการเปรียบเทียบ 🤔

ใช้เปรียบเทียบค่า ผลลัพธ์จะเป็น 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)); // แสดง: true

3. ตัวดำเนินการทางตรรกะ 🧠

ใช้รวมหรือเปรียบเทียบเงื่อนไขหลายๆ อย่างพร้อมกัน:

  • && (และ): ทั้งสองเงื่อนไขต้องเป็นจริง
  • || (หรือ): อย่างน้อยหนึ่งเงื่อนไขต้องเป็นจริง
  • ! (ไม่): กลับค่าจากจริงเป็นเท็จ หรือจากเท็จเป็นจริง

ตัวอย่าง:

int อายุ = 25; boolean มีบัตรประชาชน = true; boolean สามารถเข้าผับได้ = (อายุ >= 20) && มีบัตรประชาชน; System.out.println("สามารถเข้าผับได้ไหม? " + สามารถเข้าผับได้); // แสดง: true boolean เป็นเด็ก = !(อายุ >= 18); System.out.println("เป็นเด็กหรือเปล่า? " + เป็นเด็ก); // แสดง: false

4. ตัวดำเนินการแบบย่อ (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

ข้อควรระวังเกี่ยวกับตัวดำเนินการ

  1. ระวังการหารด้วยศูนย์ เพราะจะทำให้เกิด ArithmeticException
  2. ตัวดำเนินการ == ใช้เปรียบเทียบค่าของตัวแปรพื้นฐาน (primitive types) แต่สำหรับออบเจ็กต์ควรใช้เมธอด equals()
  3. ตัวดำเนินการ ++ และ -- สามารถใช้ได้ทั้งก่อนและหลังตัวแปร (++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 มีหลากหลายประเภทและใช้งานในสถานการณ์ต่างๆ การเข้าใจและใช้งานตัวดำเนินการอย่างถูกต้องจะช่วยให้คุณเขียนโปรแกรมได้อย่างมีประสิทธิภาพและยืดหยุ่นมากขึ้น

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