# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.saladpuk.com/beginner-1/csharp101/basic/boolean.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
