ตัวดำเนินการตรรกะ (Logical Operators) หมายถึง ตัวดำเนินการทางตรรกศาสตร์ถูกใช้เพื่อเปรียบเทียบและตัดสินใจ
โดยนำเงื่อนไขตั้งแต่ 2 เงื่อนไข มาเปรียบเทียบกัน ผลที่ได้จากการดำเนินการ จะได้ผลเป็น 2 กรณี คือ (True) จะให้ค่าเป็น 1
และ เท็จ (False) จะให้ค่าเป็น 0 ตัวดำเนินการที่ใช้มีดังนี้
ตัวดำเนินการ | ชื่อ | ความหมาย |
&& |
AND (และ) |
x && y |
|| |
OR (หรือ) |
(x+y) |
! |
NOT (นิเสธ) |
!(x > y) |
ตัวดำเนินการทางตรรกะแบบต่างๆ สามารถแสดงผลลัพธ์ของนิพจน์ตรรกะตามค่าความจริงของการดำเนินการได้
ดังตารางค่าความจริง (Truth Table) ดังนี้
ตารางค่าความจริงของตัวดำเนินการ && หรือ AND
ค่าความจริงนิพจน์ที่1 |
ค่าความจริง |
ค่าความจริงนิพจน์ที่2 |
ผลลัพธ์ |
F |
&& |
F |
F |
F |
T |
F |
|
T |
F |
F |
|
T |
T |
T |
ตารางค่าความจริงของตัวดำเนินการ || หรือ OR
ค่าความจริงนิพจน์ที่1 |
ค่าความจริง |
ค่าความจริงนิพจน์ที่2 |
ผลลัพธ์ |
F |
|| |
F |
F |
F |
T |
T |
|
T |
F |
T |
|
T |
T |
T |
ตารางค่าความจริงของตัวดำเนินการ ! หรือ NOT
ค่าความจริงนิพจน์ |
ตัวอย่าง |
ผลลัพธ์ |
F |
!F |
T |
T |
!T |
F |
Relational และ comparison operators ( ==, !=, >, <, >=, <= )
ตัวดำเนินการเปรียบเทียบ หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบ และตัดสินใจ ผลที่ได้จากการดำเนินการ
จะได้ 2 กรณี คือ จริง (True) จะให้ค่าเป็น 1 และ เท็จ (False) จะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังนี้
ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
> | มากกว่า | A > B (A มากกว่า B) |
>= | มากกว่าหรือเท่ากับ | A >= B (A มากกว่าหรือเท่ากับ B) |
< | น้อยกว่า | A < B (A น้อยกว่า B) |
<= | น้อยกว่าหรือเท่ากับ | A <= B (A น้อยกว่าหรือเท่ากับ B) |
== | เท่ากับ | A == B (A เท่ากับ B) |
!= | ไม่เท่ากับ | A != B (A ไม่เท่ากับ B) |
ตัวอย่าง
ตัวดำเนินการ | ผลลัพธ์ | หมายเหตุ |
6 > 2 | T |
เนื่องจาก 6 มากกว่า 2 จริง |
8 >= 3 | T |
เนื่องจาก 8 มีค่ามากกว่าหรือเท่ากับ 3 จริง |
5 >= 19 | F |
เนื่องจาก 5 ไม่ได้มากกว่าหรือเท่ากับ 18 |
7 == 4 | F |
เนื่องจาก 7 ไม่ได้เท่ากับ 4 |
คำอธิบาย | |
บรรทัดที่ 4 | กำหนดให้ตัวแปร a = -90, b = 9, c = 0 |
บรรทัดที่ 7 | ถ้า (!(a < b) ====> (!(-90<9) ) ==>(!(True)) ===> False |
บรรทัดที่ 9 | แสดงผลข้อมูลบนจอภาพ using ! operator = True |
บรรทัดที่ 6 | นอกนั้น แสดงผลข้อมูลบนจอภาพ using ! operator = False *** หน้าจอแสดงผล False**** |
บรรทัดที่ 14 | ถ้า ((0==1) && (-90 <= 9)) ==> ((F)&&(T)) ==> F |
บรรทัดที่ 15 | แสดงผลข้อมูลบนจอภาพ using ! operator = True |
บรรทัดที่ 17 | นอกนั้น แสดงผลข้อมูลบนจอภาพ using ! operator = False *** หน้าจอแสดงผล False**** |
บรรทัดที่ 21 | ถ้า ((9>=0) || (-90<100)) ==>(T) || (T) ==> T |
บรรทัดที่ 22 | แสดงผลข้อมูลบนจอภาพ using ! operator = True ** หน้าจอแสดงผล True**** |
บรรทัดที่ 24 | นอกนัน้น แสดงผลข้อมูลบนจอภาพ using ! operator = False |
#include <stdio.h>
#include <stdbool.h>
int main() {
int a = -90,b=9,c=0;
// using "not" operator
if(!(a < b))
printf("\n using ! operator = True");
else
printf("\n using ! operator = False");
// using "and" operator
if((c==1) && (a <= b))
printf("\n using && operator =True.");
else
printf("\n using && operator =False.");
// using "or" operator
if((b >= c) || (a<100))
printf("\n using || operator = True.");
else
printf("\n using || operator = False.");
return 0;
}