คำสั่ง if...else if เป็นคำสั่งที่ให้เราตัดสินใจเลือกทำอย่างใดอย่างหนึ่ง ในทางเลือกที่มีมากกว่า 2 ทางเลือก และแต่ละทางเลือกจะมีการกำหนดเงื่อนไขของแต่ละทางเลือกไว้ด้วย โดยโปรแกรมจะตรวจสอบเงื่อนไขทีละทางเลือก หากพบว่าทางเลือกไหนมีเงื่อนไขเป็นจริง จะทำงานที่ชุดคำสั่งภายในทางเลือกนั้น โดยไม่พิจารณาทางเลือกอื่นที่ยังไม่ได้ ตรวจสอบอีก ในกรณีที่เงื่อนไขเป็นเท็จ ให้ตรวจสอบเงื่อนไขถัดไป ในกรณีที่เงื่อนไขทั้งหมดเป็นเท็จ ให้โปรแกรมทำงานที่ชุดคำสั่งในคำสั่ง else ซึ่งมีรูปแบบคำสั่งคือ
รูปแบบคำสั่ง if....else if ได้ดังนี้
ตัวอย่าง
จงเขียนโปรแกรมตัดเกรด 5 เกรด ตามช่วงคะแนน ดังนี้
อธิบายโปรแกรม
ช่วงคะแนน เกรด >= 80 4.00 >= 70 และ < 80 3.00 >= 60 และ < 70 2.00 >= 50 และ < 60 1.00 < 50 0.00
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง 1 #include <stdio.h> เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ 2 int main() ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม { เริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) 3 int score; ประกาศตัวแปร score เป็นชนิดจำนวนเต็ม 4 printf("Please Enter the score"); แสดงข้อความให้ผู้ใช้ป้อนคะแนน 5 scanf("%d" , &score); รับค่าจำนวนเต็ม จากแป้นพิมพ์ นำไปเก็บไว้ในตัวแปร score 6 if (score >= 80) ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 80 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 9 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 8 7 GRAD = 4; แสดง GRAD = 4; 8 else if (score >= 70) ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 70 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 11 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 10 9 GRAD = 3; แสดง GRAD = 3; 10 else if (score >= 60) ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 60 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 13 ถ้าเท็จ ทำคำสั่งบรรทัดที่ 12 11 GRAD = 2; แสดง GRAD = 2; 12 else if (score >= 50) ตรวจสอบ ค่า score มากกว่าหรือเท่ากับ 50 จริงหรือไม่ ถ้าจริง ทำคำสั่งหลังเงื่อนไข บรรทัดที่ 15 ถ้าเท็จ ทำคำสั่งหลัง else บรรทัดที่14 13 GRAD = 1; แสดง GRAD = 1; 14 else ทำเมื่อกรณีตรวจสอบเงื่อนไขบรรทัดที่ 14 เป็นเท็จ 15 Fall; แสดง Fall; 16 } สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม)
ผลลัพธ์