ความหมาย
Relational operators ใช้เปรียบเทียบ expression สองตัว คืนค่า 1 (true) หรือ 0 (false)
ตาราง Operators
| Operator | ความหมาย | ตัวอย่าง (a=10,b=20) | ผลลัพธ์ |
|---|---|---|---|
| < | น้อยกว่า | a < b | 1 (True) |
| <= | น้อยกว่าหรือเท่ากับ | a <= b | 1 (True) |
| > | มากกว่า | a > b | 0 (False) |
| >= | มากกว่าหรือเท่ากับ | a >= b | 0 (False) |
| == | เท่ากับ | a == b | 0 (False) |
| != | ไม่เท่ากับ | a != b | 1 (True) |
อัลกอริทึม
START Step 1: ประกาศ int a, b Step 2: อ่านค่า a, b Step 3: คำนวณ relational operations ทั้ง 6 แบบ Step 4: พิมพ์ผลลัพธ์ทั้งหมด STOP
ตัวอย่างโปรแกรม
#include <stdio.h>
int main() {
int a, b;
printf("ป้อนค่า a, b: ");
scanf("%d%d", &a, &b);
printf("a < b = %d\\n", a < b);
printf("a <= b = %d\\n", a <= b);
printf("a > b = %d\\n", a > b);
printf("a >= b = %d\\n", a >= b);
printf("a == b = %d\\n", a == b);
printf("a != b = %d\\n", a != b);
return 0;
}ผลลัพธ์
ป้อนค่า a, b: 120 340 a < b = 1 a <= b = 1 a > b = 0 a >= b = 0 a == b = 0 a != b = 1
ข้อควรระวังสำคัญ
1. = vs ==
if (a = 5) // Assignment! คืนค่า 5 (true) - BUG if (a == 5) // Comparison - ถูกต้อง
2. Floating Point Comparison
float x = 0.1 + 0.2; // 0.30000000000000004 if (x == 0.3) // False! // ถูกต้อง: if (fabs(x - 0.3) < 0.0001)
3. Chained Comparisons
// ผิดใน C if (a < b < c) // แปลว่า (a < b) < c -> 1 < c หรือ 0 < c // ถูกต้อง if (a < b && b < c)
Precedence และ Associativity
- Relational operators (<, <=, >, >=) มี precedence เท่ากัน สูงกว่า equality (==, !=)
- Associativity: Left-to-right
- ต่ำกว่า arithmetic operators (+, -, *, /)
การประยุกต์ใช้
- Loop conditions:
while (i < n) - Array bounds checking:
if (index >= 0 && index < size) - Sorting algorithms: comparison function
- Range validation:
if (score >= 0 && score <= 100)