Lab 5

ElIf Statement

Objective

1) เพื่อเข้าใจการใช้คำสั่งตรวจสอบเงื่อนไขด้วยคำสั่ง if สำหรับการตัดสินใจหลายทางเลือก

2) เพื่อให้เข้าใจการตีความหมาย Operator ร่วมกับคำสั่ง if


elif (ย่อมาจาก else if) เป็นคำสั่งในภาษาโปรแกรม (โดยเฉพาะ Python) ใช้สำหรับ ตรวจสอบเงื่อนไขเพิ่มเติม เมื่อเงื่อนไข if แรกไม่เป็นจริง เป็นการสร้างทางเลือกหลายทางในการตัดสินใจของโปรแกรม โดยจะตรวจสอบเงื่อนไขที่ elif ไปเรื่อยๆ และทำงานเฉพาะบล็อกแรกที่เงื่อนไขเป็นจริงเท่านั้น ทำให้โค้ดอ่านง่ายกว่าการซ้อน if หลายชั้น




รูปแบบการใช้คำสั่ง if-elif-else

if: ตรวจสอบเงื่อนไขแรก

elif: ถ้า if แรกเป็น False จะมาตรวจสอบเงื่อนไขนี้ (มีได้หลายตัว)

else: ถ้าทุกเงื่อนไขที่ผ่านมาเป็น False จะทำงานในบล็อกนี้ (ไม่บังคับใส่)

เช่น


score = 75
if score >= 90:
    print("Grade: A")
elif score >= 80:
    print("Grade: B")
elif score >= 70: # เงื่อนไขนี้เป็นจริง (75 >= 70)
    print("Grade: C") # โค้ดส่วนนี้จะทำงาน
else:
    print("Grade: D")

Result of Program

-------------------------------------------------------------------------------------------

assignment

จงเขียนโปรแกรมรับค่าคะแนนจาก Keyboard แล้วตัดสินใจเลือกแสดงผลของระดับเกรดดังลักษณะการทำงานดัง flow chart

-------------------------------------------------------------------------------------------

Nested IF

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



Example


i = 0; 

# if condition 1
if i != 0:
    # condition 1
    if i > 0:
        print("Positive")
        
    # condition 2
    if i < 0:
        print("Negative")
else:
    print("Zero")

Result

สามาถเขึยนโปรแกรมแสดงระดับเกรดได้อีกรูปแบบได้ดังนี้


score = 75
if score >= 50: # เงื่อนไขชั้นนอก (ผ่านเกณฑ์ขั้นต่ำ)
    if score >= 80:
        print("เกรด A")
    elif score >= 70:
        print("เกรด B")
    elif score >= 60:
        print("เกรด C")
    else:
        print("เกรด D") # เงื่อนไขซ้อน (เกรด B, C, D)
else:
    print("ไม่ผ่าน") # กรณีไม่ผ่านเกณฑ์ขั้นต่ำ

สามารถนำมาเข้าเงื่อนไขตรวจสอบตามลำดับชั้นได้ดังตัวอย่าง


username = "user123"
password = "securepass"
status = "active"
if username == "user123": # ตรวจชื่อผู้ใช้
    if password == "securepass": # ตรวจรหัสผ่าน
        if status == "active": # ตรวจสถานะ
            print("ล็อกอินสำเร็จ!")
        else:
            print("บัญชีไม่ได้ใช้งาน") # บัญชีไม่ Active
    else:
        print("รหัสผ่านไม่ถูกต้อง") # รหัสผ่านผิด
else:
    print("ไม่พบชื่อผู้ใช้") # ไม่พบชื่อ user

assignment

ให้เขียนโปรแกรมรับค่า user name จาก keyboard แล้วนำมาตรวจสอบว่าตรงกับ ตัวแปรที่เก็บค่า username หรือไม่ หากไม่ตรงกันให้แจ้งว่าไม่มีชื่อ username นี้ แต่หา username ถูกต้องให้โปรแกรมรับค่า password มาตรวจสอบ หากตรงกันกับตัวแปร password ให้แจ้งสถานะสามารถ login ได้