# 7.การเปรียบเทียบค่า

อาวล๊าาา หลังจากที่เริ่มชินกับการสั่งให้คอมมันจำข้อมูลต่างๆ หรือการแปลงข้อมูลจากชนิดหนึ่งไปยังอีกชนิดหนึ่งละ คราวนี้สิ่งที่คนเขียนโค้ดจะต้องเจอกันคือ **การเปรียบเทียบ** ระหว่างๆของต่างๆ เช่น อายุเกิน 18 ปีหรือเปล่า? หรือต้องเทียบว่าค่าจากตัวแปร A มากกว่าตัวแปร B หรือเปล่าอะไรทำนองนี้ เราจะต้องเขียนยังไงกันน๊าาา ปะไปดูวีดีโอกันเร๊ยยยย (ครูภาษาไทยมาเจอ **ดช.แมวน้ำ** ในตอนนี้น่าจะปวดกบาลน่าดูเรยเน๊อะ)

{% embed url="<https://www.youtube.com/watch?v=FrSK1te11Sw&list=PLUjAn8nwWnijERZ3HpzBk7NfSrau74_lQ&index=11>" %}

## 🎯 สรุปสั้นๆ

### 👨‍🚀 คำสั่งในการเปรียบเทียบข้อมูล

เวลาเราจะเปรียบเทียบอะไรกันก็ตามเราจะใช้**คำสั่งในการเปรียบเทียบ**ข้อมูล ซึ่งผลจากการเปรียบเทียบนั้น เราจะได้กลับมาเป็นข้อมูลชนิด **bool** นะจุ๊

| Operator | ความหมาย                                                                 |
| -------- | ------------------------------------------------------------------------ |
| >        | เปรียบเทียบว่า ค่าด้านซ้าย **มากกว่า** ค่าด้านขวา ใช่หรือไม่             |
| <        | เปรียบเทียบว่า ค่าด้านซ้าย **น้อยกว่**า ค่าด้านขวา ใช่หรือไม่            |
| ==       | เปรียบเทียบว่า ค่าด้านซ้าย **เท่ากับ** ค่าด้านขวา ใช่หรือไม่             |
| !=       | เปรียบเทียบว่า ค่าด้านซ้าย **ไม่เท่ากับ** ค่าด้านขวา ใช่หรือไม่          |
| >=       | เปรียบเทียบว่า ค่าด้านซ้าย **มากกว่าหรือเท่ากับ** ค่าด้านขวา ใช่หรือไม่  |
| <=       | เปรียบเทียบว่า ค่าด้านซ้าย **น้อยกว่าหรือเท่ากับ** ค่าด้านขวา ใช่หรือไม่ |

### 👨‍🚀 คำสั่งในการเชื่อมการเปรียบเทียบข้อมูล

เวลาที่เราเปรียบเทียบข้อมูลหลายๆเงื่อนไข เราก็จะใช้ตัวเชื่อมต่างๆ เช่นเงื่อนไขว่า "อายุมากกว่า 18 ปี **และ** ต้องเป็นคนไทยด้วย" จะเห็นว่าตัวเชื่อในตัวอย่างนี้คือคำว่า **และ** นั่นเอง ซึ่งในภาษา C# มาตัวเชื่อมตามนี้

| Operator | ความหมาย                        | ออกเสียง  | จำง่ายๆ                                                |
| -------- | ------------------------------- | --------- | ------------------------------------------------------ |
| &        | และ                             | แอนด์ AND | **true และ true** ได้ **true**                         |
| \|       | หรือ                            | ออ OR     | ถ้ามี **true** ปุ๊ป ได้ **true**                       |
| !        | เปลี่ยนผลลัพท์ให้เป็นค่าตรงข้าม | น๊อท NOT  | !**true** ได้ **false** แต่ถ้า **!false** ได้ **true** |

{% hint style="info" %}
**วิธีเชื่อมเงื่อนไข**\
โดยปรกติการเขียนเราจะไม่นิยมใช้ตัวเชื่อมแบบโดดๆ เช่น a & b นะครับ แต่เราจะใช้คำสั่งซ้ำสองรอบกลายเป็น a && b เพราะมันเร็วกว่า

\* การใช้เครื่องหมายซ้ำ เช่น && || พวกนี้ มันจะเช็คว่าผลลัพท์มีโอกาสเป็นอย่างอื่นหรือเปล่า ถ้ามันเช็คแล้วพบว่าไม่มีโอกาสเป็นอย่างอื่น มันจะไม่เช็คเงื่อนไขอื่นๆต่อเลย ทำให้มันสามารถทำงานได้เร็วกว่าการใช้ & | แบบโดดๆครับ

*(ถ้าอ่านแล้วไม่ไม่เข้าใจไม่เป็นไรใช้ๆไปเต๊อะแบบไหนก็ได้)*
{% endhint %}

{% hint style="info" %}
**จำง่ายๆ**\
1\. ถ้าเราใช้ & ให้ดูว่าภายในเงื่อนไขมี **false** ไหม ถ้ามีแสดงว่าผลลัพท์คือ **false** ครับ\
2\. ถ้าเราใช้ | ให้ดูว่าภายในเงื่อนไขมี **true** ไหม ถ้ามีแสดงว่าผลลัพท์คือ **true** ครับ
{% endhint %}
