Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Relational Operators ในภาษา C

ความหมาย

Relational operators ใช้เปรียบเทียบ expression สองตัว คืนค่า 1 (true) หรือ 0 (false)

ตาราง Operators

Operatorความหมายตัวอย่าง (a=10,b=20)ผลลัพธ์
<น้อยกว่าa < b1 (True)
<=น้อยกว่าหรือเท่ากับa <= b1 (True)
>มากกว่าa > b0 (False)
>=มากกว่าหรือเท่ากับa >= b0 (False)
==เท่ากับa == b0 (False)
!=ไม่เท่ากับa != b1 (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)