หน่วยที่ 2 EP.4: ทางแยกตัดสินใจ (If-Else & โครงสร้างแบบทางเลือก)
  • By Admin
  • 4
  • 7 เม.ย. 2569

หน่วยที่ 2 EP.4: ทางแยกตัดสินใจ (If-Else & โครงสร้างแบบทางเลือก)

เมื่อโปรแกรมต้องรู้จักคิดและตัดสินใจ! ใน EP นี้น้องๆ จะได้เรียนรู้การใช้

🔀 หน่วยที่ 2 EP.4 ทางแยกตัดสินใจ

โครงสร้างแบบทางเลือก (If, If-Else, If-Elif-Else)

ในชีวิตจริง เราต้องตัดสินใจตลอดเวลา เช่น "ถ้าฝนตก ฉันจะกางร่ม ถ้าไม่ตก ฉันจะไม่กาง" คอมพิวเตอร์ก็ต้องตัดสินใจแบบนี้เป็นเหมือนกันครับ! เราเรียกมันว่า "โครงสร้างแบบทางเลือก (Selection)" แต่ก่อนจะตัดสินใจได้ คอมพิวเตอร์ต้องรู้จัก "การเปรียบเทียบ" ก่อนครับ

⚖️ 1. เครื่องมือสำหรับสร้าง "เงื่อนไข"

เราจะใช้ ตัวดำเนินการเปรียบเทียบ (Relational Operators) เพื่อสร้างเงื่อนไขให้คอมพิวเตอร์ตรวจสอบ ซึ่งผลลัพธ์ที่ได้จะมีแค่ 2 อย่างคือ จริง (True) หรือ เท็จ (False) เท่านั้นครับ:

== หมายถึง เท่ากับ (สังเกตว่ามี = สองตัวนะครับ!)
!= หมายถึง ไม่เท่ากับ
> หมายถึง มากกว่า
< หมายถึง น้อยกว่า
>= หมายถึง มากกว่าหรือเท่ากับ
<= หมายถึง น้อยกว่าหรือเท่ากับ

🚦 2. โครงสร้างคำสั่งตัดสินใจ 3 รูปแบบ

เมื่อเราสร้างเงื่อนไขเป็นแล้ว เราก็จะเอามาใส่ในคำสั่ง if (แปลว่า "ถ้า") ซึ่งมีให้เลือกใช้ 3 ระดับความซับซ้อนครับ:

🟢 แบบที่ 1: ทางเลือกเดียว (If)

ถ้าเงื่อนไขเป็นจริง (True) ให้ทำตามคำสั่ง แต่ถ้าเป็นเท็จ (False) ก็แค่ข้ามไปเลย ไม่ทำอะไร

if score >= 50:
    print("คุณสอบผ่าน!")

🚨 ข้อควรระวัง: หลังเงื่อนไขต้องมีเครื่องหมาย : (Colon) เสมอ และคำสั่งที่อยู่ข้างในต้อง "ย่อหน้า (Indentation)" เข้าไป 1 Tab (ประมาณ 4 เคาะ) เพื่อบอกว่าคำสั่งนี้เป็นของ if ตัวนี้นะ!

🟡 แบบที่ 2: สองทางเลือก (If-Else)

ถ้าเงื่อนไขเป็นจริงทำอย่างหนึ่ง แต่ถ้าไม่ใช่ (Else) ให้ไปทำอีกอย่างหนึ่งแทน

if score >= 50:
    print("คุณสอบผ่าน!")
else:
    print("คุณสอบตก!")

🔴 แบบที่ 3: หลายทางเลือก (If-Elif-Else)

ใช้เมื่อมีเงื่อนไขให้ต้องตัดสินใจมากกว่า 2 อย่าง เช่น การตัดเกรด A, B, C, D, F (elif ย่อมาจาก else if)

if score >= 80:
    print("ได้เกรด A")
elif score >= 70:
    print("ได้เกรด B")
else:
    print("ต้องพยายามใหม่นะ")

✍️ มินิควิซ ทบทวนความรู้ (EP.4)

มาทดสอบการตัดสินใจของโปรแกรมเมอร์กัน!

ข้อที่ 1: เครื่องหมายเปรียบเทียบในข้อใด มีความหมายว่า "ไม่เท่ากับ" ?

ข้อที่ 2: กฎข้อใดสำคัญที่สุดเมื่อต้องการเขียนคำสั่งที่อยู่ภายใต้เงื่อนไข if หรือ else ?

ข้อที่ 3: หากนักเรียนต้องการเขียนโปรแกรมตัดเกรด A, B, C, D และ F ควรใช้โครงสร้างเงื่อนไขแบบใดจึงจะเหมาะสมที่สุด?


แชร์ :

บทเรียนอื่น ๆ