เจาะลึก If-Else: พื้นฐานการตัดสินใจของโปรแกรมที่มือใหม่ต้องแม่น

8 นาที 13 views บันทึกเป็น PDF
เจาะลึก If-Else: พื้นฐานการตัดสินใจของโปรแกรมที่มือใหม่ต้องแม่น

อยากเขียนโปรแกรมให้ฉลาดขึ้นต้องเริ่มจาก If-Else! เรียนรู้วิธีสร้างเงื่อนไขให้โค้ดตัดสินใจได้เหมือนคน พร้อมเทคนิคเลี่ยงบั๊กที่มือใหม่เจอบ่อย

If-Else คืออะไรและทำไมต้องใช้

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

ลองนึกภาพว่าคุณกำลังสอนเพื่อนให้ไปซื้อของที่ร้านค้า คุณคงไม่ได้สั่งแค่ว่า "ไปร้านค้า" แต่คุณต้องมีเงื่อนไขว่า "ถ้ามีนม ให้ซื้อนม แต่ถ้าไม่มีให้ซื้อน้ำเปล่าแทน" นี่แหละครับคือหัวใจของ If-Else Statements (คำสั่งควบคุมเงื่อนไข) ซึ่งเป็นพื้นฐานสำคัญที่โปรแกรมเมอร์ทุกคนต้องแม่น

การใช้ If-Else ช่วยให้โปรแกรมของคุณมีความยืดหยุ่นและรองรับเหตุการณ์ที่ไม่แน่นอนได้ มันทำให้ซอฟต์แวร์ของคุณไม่ได้ทำงานเหมือนหุ่นยนต์ที่ทำตามสั่งอย่างเดียว แต่มันสามารถวิเคราะห์ข้อมูลและเลือกทางเดินที่เหมาะสมที่สุดให้กับผู้ใช้งานได้จริง

ปัญหาของการเขียนโค้ดแบบไม่มีเงื่อนไข

ถ้าเราไม่มี If-Else โค้ดของเราจะเหมือนรถไฟที่วิ่งอยู่บนรางเดียวตลอดเวลา ไม่ว่าสถานการณ์ข้างหน้าจะเป็นอย่างไร โปรแกรมก็จะรันทุกบรรทัดที่คุณเขียนไว้โดยไม่สนเลยว่าผลลัพธ์นั้นมันสมเหตุสมผลหรือไม่ในตอนนั้น

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

การเขียนโค้ดที่ดีต้องรู้จัก จัดการทางเลือก (Control Flow) ให้เป็น เพื่อให้โปรแกรมตอบสนองต่อข้อมูลที่ต่างกันได้ถูกต้อง การเรียนรู้วิธีใช้เงื่อนไขจึงเป็นก้าวแรกที่สำคัญมากสำหรับมือใหม่ที่อยากขยับจากการเขียนสคริปต์ง่ายๆ ไปสู่การพัฒนาแอปพลิเคชันที่ซับซ้อนขึ้น

ทำความรู้จักกับโครงสร้าง If-Else

โครงสร้างของ If-Else ประกอบด้วยสองส่วนหลักคือเงื่อนไขที่ต้องพิสูจน์ว่าเป็นจริงหรือเท็จ ถ้าเงื่อนไขนั้นเป็น True (จริง) โปรแกรมจะวิ่งเข้าไปทำงานในบล็อกที่กำหนดไว้ แต่ถ้าเป็น False (เท็จ) โปรแกรมจะข้ามไปทำงานในส่วนของ Else แทน

ลองดูตัวอย่างการเช็คอายุคนเพื่อตัดสินใจว่าโหวตเลือกตั้งได้หรือไม่

# กำหนดค่าอายุเริ่มต้น
age = 18

# ตรวจสอบเงื่อนไขว่าอายุเท่ากับหรือมากกว่า 18 หรือไม่
if age >= 18:
    print("คุณสามารถโหวตได้")
else:
    print("คุณยังเด็กเกินไปที่จะโหวต")

อธิบายโค้ดทีละส่วน: บรรทัดที่ 2 คือการสร้างตัวแปรเก็บอายุ บรรทัดที่ 4 ใช้คำสั่ง if เพื่อเช็คเงื่อนไขว่า age มากกว่าหรือเท่ากับ 18 ไหม ถ้าใช่ โปรแกรมจะสั่งให้พิมพ์ข้อความในบรรทัดที่ 5 แต่ถ้าไม่ใช่ โปรแกรมจะข้ามมาทำในบรรทัดที่ 7 ที่เป็น else แทน

ผลลัพธ์ที่ควรเห็นบนหน้าจอคือ: คุณสามารถโหวตได้ เพราะค่าอายุเราตั้งไว้ที่ 18 ซึ่งเข้าเงื่อนไขพอดีครับ

การใช้ Comparison Operators เพื่อเปรียบเทียบข้อมูล

หัวใจสำคัญของ If คือการเปรียบเทียบข้อมูล ซึ่งเราต้องใช้ Comparison Operators (ตัวดำเนินการเปรียบเทียบ) เข้ามาช่วย เช่น > (มากกว่า), < (น้อยกว่า), >= (มากกว่าหรือเท่ากับ), <= (น้อยกว่าหรือเท่ากับ), == (เท่ากับ) และ != (ไม่เท่ากับ)

มือใหม่มักจะพลาดตรงการใช้เครื่องหมาย = ตัวเดียว ซึ่งในภาษาโปรแกรมส่วนใหญ่หมายถึงการ กำหนดค่า (Assignment) ไม่ใช่การเปรียบเทียบ ถ้าต้องการเช็คว่าค่าเท่ากันไหม ต้องใช้ == สองตัวเสมอ นี่เป็นจุดที่โปรแกรมเมอร์จูเนียร์มักจะโดนบั๊ก (Bug - ข้อผิดพลาดในโปรแกรม) เล่นงานบ่อยที่สุด

ลองฝึกใช้เครื่องหมายเหล่านี้ให้คล่อง เพราะมันจะถูกนำไปใช้ในทุกส่วนของงานพัฒนาซอฟต์แวร์ ตั้งแต่การเช็คพาสเวิร์ดไปจนถึงการคัดกรองข้อมูลในฐานข้อมูล (Database - ระบบจัดเก็บข้อมูลขนาดใหญ่) ยิ่งคุณเข้าใจการเปรียบเทียบมากเท่าไหร่ โค้ดของคุณก็จะยิ่งแม่นยำและปลอดภัยมากขึ้นเท่านั้น

ตัวอย่างการใช้งานจริงที่ซับซ้อนขึ้น

ในชีวิตการทำงานจริง เราไม่ได้มีแค่ทางเลือกเดียวเสมอไป บางครั้งเราอาจต้องเช็คเงื่อนไขซ้อนเงื่อนไข หรือมีหลายทางเลือก เราจึงต้องรู้จัก Elif (ย่อมาจาก Else If) เพื่อเพิ่มทางเลือกที่สอง สาม หรือสี่เข้าไปในโปรแกรมของเรา

# ตรวจสอบระดับคะแนนสอบ
score = 75

if score >= 80:
    print("เกรด A")
elif score >= 70:
    print("เกรด B")
else:
    print("เกรดต่ำกว่า B")

อธิบายโค้ด: โปรแกรมจะเช็คจากบนลงล่าง บรรทัดที่ 4 เช็คว่าเกิน 80 ไหม ถ้าไม่ผ่านจะมาเช็คบรรทัดที่ 6 ต่อว่าเกิน 70 ไหม ถ้าเงื่อนไขตรงที่ 70 ก็จะพิมพ์เกรด B ออกมา แต่ถ้าไม่ผ่านทั้งคู่ก็จะเข้าเงื่อนไขสุดท้ายในบรรทัดที่ 8

ผลลัพธ์ที่ควรเห็นบนหน้าจอคือ: เกรด B เพราะคะแนน 75 ไม่ถึง 80 แต่ผ่านเงื่อนไข 70 ครับ

ข้อควรระวังสำหรับมือใหม่

สิ่งที่ต้องระวังที่สุดคือการ Indentation (การย่อหน้าของโค้ด) ในภาษา Python การย่อหน้าไม่ใช่แค่ความสวยงาม แต่เป็นตัวกำหนดขอบเขตของโค้ดว่าบรรทัดไหนอยู่ในเงื่อนไขของ if ถ้าคุณย่อหน้าผิด โปรแกรมอาจรันแล้วให้ผลลัพธ์ที่ผิดพลาด หรือเกิดข้อผิดพลาดจนรันไม่ได้เลย

อีกจุดคือการลืมใส่เครื่องหมาย : (Colon) หลังเงื่อนไข If ซึ่งเป็นไวยากรณ์ที่บังคับว่าต้องมี ถ้าลืมใส่โปรแกรมจะแจ้งเตือนว่า Syntax Error (ความผิดพลาดทางรูปแบบภาษา) ทันที ให้เช็คให้ดีก่อนรันโปรแกรมเสมอครับ

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

สรุป: เปลี่ยนโปรแกรมให้คิดเป็น

สรุปแล้ว If-Else คือเครื่องมือที่เปลี่ยนโค้ดธรรมดาให้กลายเป็นโปรแกรมที่มีชีวิต มันช่วยให้ซอฟต์แวร์ของคุณสามารถตอบสนองต่อผู้ใช้งานได้อย่างชาญฉลาด และทำให้คุณก้าวข้ามผ่านการเป็นแค่คนเขียนสคริปต์ไปสู่การเป็น นักพัฒนาซอฟต์แวร์ (Software Developer) อย่างเต็มตัว

ลองนำไปใช้กับโปรเจกต์ (Project - ชิ้นงานที่สร้างขึ้นเพื่อฝึกฝน) ของคุณดูครับ เช่น ลองเขียนโปรแกรมเช็คคำตอบในเกมทายเลข หรือเช็คสถานะการล็อกอินของ User ในระบบเล็กๆ ของคุณเอง การฝึกบ่อยๆ จะทำให้คุณใช้เงื่อนไขเหล่านี้ได้อย่างเป็นธรรมชาติจนไม่ต้องนั่งคิดมากในอนาคต

จำไว้ว่าการเขียนโปรแกรมคือทักษะที่ฝึกฝนได้ ไม่ต้องกลัวที่จะเขียนผิดหรือติดบั๊ก เพราะทุกครั้งที่คุณแก้ปัญหาได้ คุณจะเก่งขึ้นกว่าเมื่อวานเสมอ ขอให้สนุกกับการเขียนโค้ดและสร้างสรรค์สิ่งใหม่ๆ ต่อไปครับ


ที่มา: If-Else Statements: When I Finally Got It — DEV Community

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

จัดการเซิร์ฟเวอร์ผ่าน VS Code ให้ง่ายขึ้นด้วย Easy SSH พร้อมฟีเจอร์โหลดไฟล์ผ่านคลิกเดียว

จัดการเซิร์ฟเวอร์ผ่าน VS Code ให้ง่ายขึ้นด้วย Easy SSH พร้อมฟีเจอร์โหลดไฟล์ผ่านคลิกเดียว

เบื่อไหมที่ต้องสลับหน้าจอไปมาเพื่อจัดการเซิร์ฟเวอร์? มาลองใช้ Easy SSH ปลั๊กอิน VS Code ที่ช่วยให้คุณรีโมทผ่าน Terminal ได้สะดวก แถมโหลดไฟล์ได้ง่ายแค่กด Ctrl+click

ที่มา: DEV Community

3 hours ago 11 นาที
3 views
วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

อยากทำแอปท่องเที่ยวแต่ดึงข้อมูลราคาจาก Google Hotels ไม่ได้? มาดูวิธีใช้ Apify Actor ช่วยดึงข้อมูลแบบอัตโนมัติด้วย Python ง่ายๆ ไม่ต้องกลัวเว็บพัง

ที่มา: DEV Community

6 hours ago 8 นาที
4 views
วิธีเช็กความพร้อมโปรเจกต์ก่อนปล่อยงานจริงด้วย ReleaseReady

วิธีเช็กความพร้อมโปรเจกต์ก่อนปล่อยงานจริงด้วย ReleaseReady

เคยไหม? โค้ดรันได้ในเครื่องแต่พอปล่อยจริงกลับพัง! มาดูวิธีตรวจสอบความพร้อมของโปรเจกต์ก่อนอัปขึ้น GitHub ด้วยเครื่องมือ ReleaseReady กัน

ที่มา: DEV Community

10 hours ago 9 นาที
5 views