เคยสงสัยไหมครับว่าโปรแกรมคอมพิวเตอร์ หรือแอปพลิเคชันที่เราใช้กันอยู่ทุกวันนี้ "คิด" เองได้อย่างไร? เช่น ระบบ 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) ที่เราเรียนในบทที่แล้วดูนะครับ รับรองว่าจะแม่นขึ้นเยอะเลย!