คณิตศาสตร์สำหรับการเขียนโปรแกรม ตอนที่ 3

ในบทความนี้จะพูดถึงเรื่องของลำดับในการทำงานของ operator ความหมายของ operator คือ การทำงานทางคณิตศาสตร์ เช่น +, -, *,/, %, and, or และอื่นๆ เมื่อตัวดำเนินการต่างๆมาทำงานร่วมกันหลายๆตัว ก็จำเป็นจะต้องจัดลำดับความสำคัญว่าใครทำก่อน ใครทำหลัง

ซึ่งในการทำงานหรือการทำข้อสอบจะเป็นเรื่องปวดหัวมากถ้าเจอกับโจทย์แบบนี้ เรามีวิธีการง่ายๆในการช่วยให้จำได้ง่ายขึ้นมากๆ

ในการจัดลำดับ operator ต่างๆ ให้ใช้หลักการของ BODMAS ซึ่งย่อมาจาก

  • B   – Bucket First (ทำในวงเล็บก่อนเสมอ)
  • O   – Orders (มีการทำงาน 2 อย่างคือ ยกกำลัง หรือ square root)
  • DM – Division and Multiplication (การหารและการคูณ ที่ต้องเอาไว้คู่กันเพราะทั้งการหารและการคูณมีลำดับความสำคัญเท่ากัน)
  • AS – Addition and Subtraction (การบวกและการลบ เหมือนกับการคูณและการหาร ทั้ง 2 ตัวนี้มีลำดับความสำคัญเท่ากัน)

สุดท้ายถ้าจำลำดับความสำคัญได้แล้วก็ให้จำว่า ถ้าความสำคัญเท่ากันจะเรียงจากซ้ายไปขวาเสมอ เหมือนกับเราอ่านหนังสือ

ตัวอย่าง

  1.  สิ่งที่ต้องทำก่อนคือ 6 *3 เนื่องจากอันดับการทำงานสูงกว่า + และ – (ที่เลือก 6 * 3 ก่อนเพราะคูณกับหารมีความสำคัญเท่ากันเลยเลือกที่จะทำจากซ้ายไปขวา)
  2. หลังจากนั้นให้เอาผลลัพธ์จาก 6*3 คือ 18 มาหารด้วย 2
  3. สุดท้ายเราจะนำผลลัพธ์ที่ได้จาก 18 /2 ซึ่งก็คือ 9 มาบวกกับ 12

ผลลัพธ์สุดท้ายเราจะได้  21

ดังนั้นถ้าเราจำคำว่า BODMAS ได้ เราก็มาแยกหาลำดับการทำงานของ Operator ได้ เมื่อเราเจอโจทย์ที่ต้องทำการจัดลำดับของ Operator ก็จะไม่มีปัญหาอีกต่อไป

หมายเหตุ ในตัวอย่างที่ให้มาไม่มี วงเล็บ และ การยกกำลังหรือ ถอด square roots ดังนั้น * และ / จึงมีลำดับสูงสุด

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

ค่าที่สามารถแปลงเป็น False ได้ หรือเทียบเท่ากับ False

PHP เป็นภาษาที่ Dynamic Type โดย Complier จะทำการ convert Data Type ให้โดยอัตโนมัติ ดังนั้นสิ่งที่ต้องระมัดระวังคือ การตวจสอบว่าค่าที่ได้เป็น FALSE นั้น จริงๆแล้วอาจเป็นค่าที่เทียบเท่า FALSE ได้ ยกตัวอย่างเช่น

การใช้ strpos() ถ้าเราทำการตรวจสอบเงื่อนไข โดยใช้ “==” อาจทำให้เกิดการผิดพลาดได้ เพราะ ถ้าตัวอักษรหรือข้อความที่เราทำการค้นหาเป็นตัวแรกในข้อความ ค่าที่ return กลับมาจะเป็น 0 ซึ่ง PHP จะมองว่าเป็น FALSE กลายเป็นว่าเราหาตัวอักษรหรือข้อความที่เราต้องการไม่พบทั้งๆ ที่จริงๆแล้วพบตั้งแต่ตัวแรกของข้อความ เราจึงจำเป็นต้องใช้ “===” ในการเปรียบเทียบ

Read more ค่าที่สามารถแปลงเป็น False ได้ หรือเทียบเท่ากับ False