Control Flow - การใช้งาน If-Else

Last updated: January 24, 2026

เคยสงสัยไหมครับว่าโปรแกรมคอมพิวเตอร์ หรือแอปพลิเคชันที่เราใช้กันอยู่ทุกวันนี้ "คิด" เองได้อย่างไร? เช่น ระบบ Shopee รู้ได้อย่างไรว่าต้องลดราคาให้เราถ้าเรามีโค้ดส่วนลด หรือ Facebook รู้ได้อย่างไรว่าต้องแจ้งเตือนเมื่อมีคนมาคอมเมนต์

คำตอบคือการใช้ If-Else หรือ การควบคุมเงื่อนไข (Conditional Statements) นั่นเองครับ ในบทนี้เราจะมาเปลี่ยนโปรแกรมธรรมดาๆ ให้กลายเป็นโปรแกรมที่มี "สมอง" สามารถตัดสินใจเลือกทำสิ่งต่างๆ ตามเงื่อนไขที่เรากำหนดได้


1. โครงสร้างของ If-Else ใน Python

ในภาษา Python การเช็กเงื่อนไขจะใช้คีย์เวิร์ดหลักๆ อยู่ 3 ตัว คือ if, elif (ย่อมาจาก else if) และ else ครับ

1.1 การใช้ if (เงื่อนไขเดียว)

ใช้เมื่อเราต้องการเช็กว่า "ถ้าเงื่อนไขเป็นจริง ให้ทำสิ่งนี้"

age = 20
if age >= 18:
    print("คุณมีสิทธิ์เลือกตั้ง")

1.2 การใช้ if...else (สองทางเลือก)

ใช้เมื่อต้องการบอกว่า "ถ้าเงื่อนไขแรกไม่จริง ให้ไปทำอีกอย่างแทน"

is_logged_in = False

if is_logged_in:
    print("ยินดีต้อนรับเข้าสู่ระบบ")
else:
    print("กรุณาล็อกอินก่อนใช้งาน")

1.3 การใช้ if...elif...else (หลายทางเลือก)

ใช้ในกรณีที่เรามีหลายเงื่อนไขที่ต้องเช็กเรียงลำดับลงมาครับ

score = 75

if score >= 80:
    print("เกรด A")
elif score >= 70:
    print("เกรด B")
elif score >= 60:
    print("เกรด C")
else:
    print("เกรด F")

2. สิ่งที่ต้องระวัง: การย่อหน้า (Indentation)

นี่คือจุดที่มือใหม่พลาดบ่อยที่สุด และเป็นเอกลักษณ์ของภาษา Python เลยครับ

⚠️ กฎเหล็กของ Python: > หลังจากจบประโยคเงื่อนไขต้องมีเครื่องหมาย Colon (:) เสมอ และบรรทัดถัดไปที่จะอยู่ภายใต้เงื่อนไขนั้น "ต้องย่อหน้าเข้าไป" (โดยทั่วไปคือการกด Tab 1 ครั้ง หรือ Space 4 ครั้ง) หากไม่ย่อหน้า Python จะแจ้งเตือน IndentationError ทันทีครับ


3. ตารางสรุปตัวดำเนินการเปรียบเทียบที่ใช้บ่อย

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

ตัวดำเนินการ ความหมาย ตัวอย่างการใช้
== เท่ากับ if password == "1234":
!= ไม่เท่ากับ if user_role != "admin":
> มากกว่า if price > 1000:
< น้อยกว่า if temperature < 25:
and และ (ต้องจริงทั้งคู่) if age >= 18 and has_id_card:
or หรือ (จริงแค่อันเดียวก็ได้) if is_weekend or is_holiday:

4. Workshop: ระบบคำนวณราคาสินค้าตามเงื่อนไข

ลองเอาความรู้ทั้งหมดมาทำโปรแกรมจำลองหน้าชำระเงินของเว็บไซต์กันครับ:

total_price = 1500  # ยอดซื้อทั้งหมด
is_member = True    # เป็นสมาชิกหรือไม่

# เงื่อนไข: ถ้าเป็นสมาชิก และซื้อครบ 1000 บาท จะได้ส่วนลด 10%
if is_member and total_price >= 1000:
    discount = total_price * 0.1
    net_price = total_price - discount
    print(f"คุณได้รับส่วนลดสมาชิก 10%: {discount} บาท")
    print(f"ราคาสุทธิ: {net_price} บาท")

# เงื่อนไข: ถ้าซื้อครบ 1000 แต่ไม่เป็นสมาชิก ได้ส่วนลด 5%
elif total_price >= 1000:
    discount = total_price * 0.05
    net_price = total_price - discount
    print(f"คุณได้รับส่วนลดพิเศษ 5%: {discount} บาท")
    print(f"ราคาสุทธิ: {net_price} บาท")

# กรณีอื่นๆ: ไม่ได้ส่วนลด
else:
    print(f"ราคาปกติ: {total_price} บาท")
    print("สมัครสมาชิกเพื่อรับส่วนลดในครั้งถัดไปนะคะ!")

สรุป

การใช้งาน If-Else คือหัวใจสำคัญของการเขียนโปรแกรมให้ "ฉลาด" ไม่ว่าคุณจะไปสาย Web Dev เพื่อเขียนเช็กสิทธิ์ผู้ใช้ หรือสาย Data เพื่อกรองข้อมูล คุณจะได้ใช้มันแน่นอนครับ!

แนะนำ: ลองฝึกเขียนเงื่อนไขง่ายๆ เช่น "โปรแกรมเช็กเลขคู่-เลขคี่" โดยใช้เครื่องหมาย % (Modulo) ที่เราเรียนในบทที่แล้วดูนะครับ รับรองว่าจะแม่นขึ้นเยอะเลย!