เงื่อนไข if … elif … else ในภาษา Python
เงื่อนไข if … elif … else เป็นรูปแบบของเงื่อนไขที่ใช้ในภาษา Python ในการเลือกทำงานแบบสองทางหรือมากกว่า โดยรูปแบบของเงื่อนไขนี้จะมีหลายเงื่อนไขและจะทำงานที่เงื่อนไขแรกที่เข้าขึ้นตรงกับเงื่อนไขนั้น ๆ
รูปแบบของเงื่อนไข if … elif … else ดังนี้
if condition1:
statement1
elif condition2:
statement2
elif condition3:
statement3
...
else:
statement
เงื่อนไข if จะตรวจสอบเงื่อนไขที่ระบุและดำเนินการที่ระบุใน statement1 หากเงื่อนไขเป็นจริง ถ้าเงื่อนไข if เป็นเท็จ ระบบจะตรวจสอบเงื่อนไข elif ถัดไป ถ้าเงื่อนไข elif ตรงกับเงื่อนไขใด ๆ แล้วระบบจะดำเนินการตามคำสั่งที่ระบุในส่วน statement2 หากเงื่อนไข elif เป็นเท็จ ระบบจะตรวจสอบเงื่อนไข elif ถัดไป และดำเนินการตามคำสั่งของส่วนนั้น ๆ ไปเรื่อย ๆ จนกว่าเงื่อนไขใด ๆ จะตรงหรือถึงส่วน else (ถ้ามี) ถ้าไม่มีเงื่อนไขใด ๆ ที่ตรงกับเงื่อนไขที่กำหนดไว้ ระบบจะดำเนินการตามคำสั่งที่ระบุในส่วน else (ถ้ามี)
ตัวอย่าง การใช้งานเงื่อนไข if … elif … else ในภาษา Python ดังนี้:
x = 10
if x > 10:
print("x is greater than 10")
elif x < 10:
print("x is less than 10")
else:
print("x is equal to 10")
ผลลัพธ์ คือ
x is equal to 10
จากตัวอย่าง จะตรวจสอบค่าของตัวแปร x ว่ามากกว่า 10, น้อยกว่า 10 หรือเท่ากับ 10 และแสดงผลลัพธ์ที่เหมาะสมตามเงื่อนไขที่เป็นจริง
ในที่นี้ตัวแปร x มีค่าเท่ากับ 10 ดังนั้นโปรแกรมจะทำงานในส่วนของ else และแสดงผลลัพธ์ว่า “x is equal to 10“
ตัวอย่าง เงื่อนไข If … elif … else ตรวจสอบคะแนน เพื่อตัดเกรด
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print(f"The grade for score {score} is {grade}")
จากตัวอย่างนี้ คะแนนของนักเรียนคือ 85 และเราใช้เงื่อนไข if … elif … else เพื่อตรวจสอบคะแนนและกำหนดเกรดตามเกณฑ์ที่กำหนดไว้ในเงื่อนไขของเรา โดยเริ่มต้นเราตรวจสอบว่าคะแนนมากกว่าหรือเท่ากับ 90 หรือไม่ ถ้าใช่เรากำหนดเกรดเป็น A ถ้าไม่ใช่เรากำหนดเงื่อนไข elif เพื่อตรวจสอบว่าคะแนนมากกว่าหรือเท่ากับ 80 หรือไม่ แล้วกำหนดเกรดตามนั้นไปเรื่อย ๆ จนกว่าเราจะตรวจสอบเงื่อนไข else ซึ่งจะกำหนดเกรด F สำหรับคะแนนที่ไม่ผ่านเกณฑ์การสอบ. ผลลัพธ์ที่ได้จากโปรแกรมนี้คือ:
The grade for score 85 is B
ตัวอย่าง เงื่อนไข If … elif … else ตรวจสอบอายุ เพื่อให้รู้ว่าอยู่ในวัยใด
age = 25
if age < 18:
print("You are underage")
elif age >= 18 and age < 30:
print("You are a young adult")
elif age >= 30 and age < 60:
print("You are a middle-aged adult")
else:
print("You are a senior citizen")
จากตัวอย่างนี้ กำหนดค่าตัวแปร age
เป็น 25 และจะใช้เงื่อนไข If … elif … else เพื่อตรวจสอบช่วงอายุของผู้ใช้ โดยจะแสดงข้อความที่เหมาะสมกับช่วงอายุของผู้ใช้
ผลลัพธ์ที่ได้ คือ
You are a young adult
ในกรณีนี้ เงื่อนไขแรกไม่เป็นจริงเพราะว่าอายุเท่ากับ 25 ซึ่งไม่น้อยกว่า 18 ดังนั้นโปรแกรมจะตรวจสอบเงื่อนไขถัดไป โดยเงื่อนไขที่สองจะเป็นจริงเพราะอายุเท่ากับ 25 อยู่ในช่วง 18 ถึง 30 ดังนั้นโปรแกรมจะแสดงข้อความว่า “You are a young adult“
ตัวอย่าง เงื่อนไข If … elif … else สอบถามชื่อและความต้องการเล่นเกม
name = input("What is your name? ")
answer = input("Do you want to play a game? ")
if answer == "yes":
print("Great! Let's play a game.")
elif answer == "no":
print("Oh, okay. Maybe next time.")
else:
print("Sorry, I didn't understand your answer.")
print("Thanks for playing, " + name + "!")
จากตัวอย่างนี้ โปรแกรมจะถามชื่อของผู้ใช้และว่าต้องการเล่นเกมหรือไม่ โดยโปรแกรมจะตอบสนองตามคำตอบของผู้ใช้ ถ้าคำตอบเป็น “yes” โปรแกรมจะพิมพ์ข้อความ “Great! Let’s play a game.” แต่ถ้าคำตอบเป็น “no” โปรแกรมจะพิมพ์ข้อความ “Oh, okay. Maybe next time.” และถ้าผู้ใช้ป้อนคำตอบอื่น ๆ โปรแกรมจะพิมพ์ข้อความ “Sorry, I didn’t understand your answer.” ในทุก ๆ กรณี โปรแกรมจะส่งคำขอบคุณสำหรับการเล่นเกมไปยังผู้ใช้โดยใช้ชื่อที่ผู้ใช้ป้อนเป็นอาร์กิวเมนต์ในการพิมพ์ข้อความ “Thanks for playing, [ชื่อ]!”
ตัวอย่าง เงื่อนไข If … elif … else ตรวจสอบสถานะจากอายุ
age = 25
is_student = True
is_employed = False
if is_student:
print("The person is a student")
if is_employed:
print("The person is employed")
if not is_student and not is_employed:
if age < 18:
print("The person is under 18 and not a student")
elif age >= 18 and age < 65:
print("The person is not a student and not employed")
else:
print("The person is not a student and is retired")
ผลลัพธ์ที่ได้ คือ
The person is a student
ในตัวอย่างนี้ กำหนดค่าตัวแปร age
โดยให้มีค่าเท่ากับ 25 และกำหนดค่าตัวแปร is_student
และ is_employed
ให้มีค่าเป็น True
และ False
ตามลำดับ ดังนั้น เงื่อนไขแรกจะเป็นเงื่อนไขเช็คว่า is_student
เป็นจริงหรือไม่ โดยในกรณีนี้ is_student
เป็นจริงจึงจะแสดงผลลัพธ์ “The person is a student” ต่อมาจะเป็นเงื่อนไขเช็คว่า is_employed
เป็นจริงหรือไม่ ในกรณีนี้ is_employed
เป็นเท็จ ดังนั้นไม่มีการแสดงผลลัพธ์ใดๆ ต่อมาเป็นเงื่อนไขสุดท้าย ซึ่งจะเข้าสู่การตรวจสอบอายุของคนโดยเริ่มจากเงื่อนไขเช็คว่าไม่ใช่นักเรียนและไม่ได้จ้างงาน โดยใช้ตัวดำเนินการ not
เพื่อทำการเปลี่ยนเงื่อนไขให้ตรงกับที่ต้องการ หาก is_student
เป็นเท็จ และ is_employed
เป็นเท็จ ก็จะเข้าเงื่อนไขนี้