Software Design

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

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

🎯 สรุปสั้นๆ

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

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

Operator

ความหมาย

>

เปรียบเทียบว่า ค่าด้านซ้าย มากกว่า ค่าด้านขวา ใช่หรือไม่

<

เปรียบเทียบว่า ค่าด้านซ้าย น้อยกว่า ค่าด้านขวา ใช่หรือไม่

==

เปรียบเทียบว่า ค่าด้านซ้าย เท่ากับ ค่าด้านขวา ใช่หรือไม่

!=

เปรียบเทียบว่า ค่าด้านซ้าย ไม่เท่ากับ ค่าด้านขวา ใช่หรือไม่

>=

เปรียบเทียบว่า ค่าด้านซ้าย มากกว่าหรือเท่ากับ ค่าด้านขวา ใช่หรือไม่

<=

เปรียบเทียบว่า ค่าด้านซ้าย น้อยกว่าหรือเท่ากับ ค่าด้านขวา ใช่หรือไม่

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

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

Operator

ความหมาย

ออกเสียง

จำง่ายๆ

&

และ

แอนด์ AND

true และ true ได้ true

|

หรือ

ออ OR

ถ้ามี true ปุ๊ป ได้ true

!

เปลี่ยนผลลัพท์ให้เป็นค่าตรงข้าม

น๊อท NOT

!true ได้ false แต่ถ้า !false ได้ true

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

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

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

จำง่ายๆ 1. ถ้าเราใช้ & ให้ดูว่าภายในเงื่อนไขมี false ไหม ถ้ามีแสดงว่าผลลัพท์คือ false ครับ 2. ถ้าเราใช้ | ให้ดูว่าภายในเงื่อนไขมี true ไหม ถ้ามีแสดงว่าผลลัพท์คือ true ครับ