01 September 2020

Learn to Code 1 - บทที่ 5 Logical Operators (AND, OR, NOT)

Logical Operators

เรามากำหนดเงื่อนไขให้ชัดเจนมากขึ้นด้วยคำว่า "และ" "หรือ" "ไม่" กันเถอะ!


เครื่องหมาย &&  คือ AND แปลว่า และ

เครื่องหมาย ||    คือ OR แปลว่า หรือ

เครื่องหมาย !    คือ NOT แปลว่า ไม่



AND

เครื่องหมาย &&  แทนคำว่า และ

การใช้งาน ใส่คั่นกลางระหว่างข้อกำหนด


ตัวอย่างที่ 1

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ และ มีอัญมณี จงทำคำสั่งในวงเล็บปีกกา

if isOnClosedSwitch && isOnGem {
     toggleSwitch()
     collectGem()
}

ดังนั้น ช่องที่ตัวละครยืนอยู่จะต้องมีทั้งสวิตช์ที่ปิดอยู่ และ อัญมณี โปรแกรมจึงจะทำคำสั่งในวงเล็บปีกกา




ตัวอย่างที่ 2 

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ และ มีอัญมณี และ มีสิ่งกีดขวาง จงทำคำสั่งในวงเล็บปีกกา

if isOnClosedSwitch && isOnGem && isBlocked {
     toggleSwitch()
     collectGem()
}

ดังนั้น แม้จะอยู่บนสวิตช์ที่ปิดอยู่ และ มีอัญมณี แต่ถ้าไม่มีสิ่งกีดขวาง โปรแกรมก็จะไม่ทำคำสั่งในวงเล็บปีกกา เพราะถือว่าไม่เป็นไปตามข้อกำหนดทั้งหมด



OR

เครื่องหมาย ||  แทนคำว่า หรือ

การใช้งาน ใส่คั่นกลางระหว่างข้อกำหนด


ตัวอย่างที่ 3

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ หรือ มีอัญมณี จงทำคำสั่งในวงเล็บปีกกา

if isOnClosedSwitch || isOnGem {
     toggleSwitch()
     collectGem()
}

ดังนั้น ถ้าช่องที่ตัวละครยืนอยู่มีทั้งสวิตช์ที่ปิดอยู่และอัญมณี หรือมีแค่อย่างใดอย่างหนึ่ง โปรแกรมก็จะทำคำสั่งในวงเล็บปีกกา




ตัวอย่างที่ 4 

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ หรือ มีอัญมณี และ มีสิ่งกีดขวาง จงทำคำสั่งในวงเล็บปีกกา

เมื่อมีการใช้ && และ || ผสมกันในหนึ่งเงื่อนไข จำเป็นต้องแบ่งกลุ่มด้วยเครื่องหมายวงเล็บ () เพื่อป้องกันความผิดพลาดในการทำงานของโปรแกรม

คำตอบที่ 1

if isOnClosedSwitch || ( isOnGem && isBlocked ) { ชุดคำสั่ง }

โปรแกรมจะทำคำสั่งในวงเล็บปีกกาในกรณีต่อไปนี้

  • อยู่บนสวิตช์ที่ปิดอยู่
  • อยู่บนสวิตช์ที่ปิดอยู่ และ มีอัญมณี
  • อยู่บนสวิตช์ที่ปิดอยู่ และ มีสิ่งกีดขวาง
  • มีอัญมณี และ มีสิ่งกีดขวาง


โปรแกรมจะไม่ทำคำสั่งในวงเล็บปีกกาในกรณีต่อไปนี้

  • ไม่มีอะไรเลย
  • มีอัญมณี เท่านั้น
  • มีสิ่งกีดขวาง เท่านั้น


คำตอบที่ 2

if ( isOnClosedSwitch || isOnGem ) && isBlocked { ชุดคำสั่ง }

ถ้าใส่วงเล็บ () ครอบข้อกำหนด || ทั้งหมดไว้ โปรแกรมจะเข้าใจว่านอกจากจะมีส่ิงของในวงเล็บแล้ว จะต้องมีสิ่งที่อยู่หลัง && ด้วย 

ดังนั้น แม้จะมีทั้งสวิตช์ที่ปิดอยู่และอัญมณี แต่ถ้าไม่มีสิ่งกีดขวาง ก็จะไม่ทำคำสั่งในวงเล็บปีกกาเด็ดขาด



NOT

เครื่องหมายอัศเจรีย์ !  แทนคำว่า ไม่

การใช้งาน ใส่ข้างหน้าข้อกำหนด


ตัวอย่างที่ 5

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ และ ไม่มีอัญมณี จงกดสวิตช์

if isOnClosedSwitch && !isOnGem toggleSwitch() }


ตัวอย่างที่ 6

ถ้า อยู่บนสวิตช์ที่ปิดอยู่ และ ไม่มีสิ่งกีดขวาง จงกดสวิตช์

if isOnClosedSwitch && !isBlocked toggleSwitch() }


ตัวอย่างที่ 7

ถ้า ไม่อยู่บนสวิตช์ที่ปิดอยู่ และ ไม่มีอัญมณี จงเดินหน้า

if !isOnClosedSwitch && !isOnGem moveForward() }





รู้หรือไม่? 

เราสามารถเปลี่ยนตัวละครใน Swift Playgrounds - Learn to Code ได้ด้วยการกดที่ตัวละคร



บลู (Blu)   |   ไบท์ (Byte)   |   ฮอปเปอร์ (Hopper)


Byte เป็นตัวละครหลัก โผล่หน้ามาให้เห็นเป็นหน้าแรก มาดกวนๆ ดูเพลินกำลังดี

Hopper ชื่อน้อง แปลว่า ตั้กแตน แต่เห็นสีเขียวแดงแล้วนึกถึงแตงโมทุกที น้องเรียบร้อยน่ารัก

Blu เจ้าหยดน้ำนี่ท่าเดินทำให้เดาได้ว่าเป็นเจ้าเด็กจอมซนผู้รักการผจญภัยเป็นแน่


ท่าทางการเดิน การกระโดด การเก็บอัญมณี ความซุกซน และความน่ารักของน้องๆ เป็นสิ่งที่น่าสนใจในการเรียน Swift บนโปรแกรม Playgrounds ที่ Apple สร้างมาให้พวกเราค่ะ 

นอกจากนี้ ในบทที่สอง Learn to Code 2 เราจะได้รู้จักตัวละครใหม่ด้วยนะคะ


ดังนั้น สู้ต่อไปนะคะ

เป็นกำลังใจให้เสมอค่ะ

-- ดีบี --



ขอบคุณภาพจาก Swift Playgrounds