หน้าหลัก
แนะนำรายวิชา
แบบทดสอบวัดผลสัมฤทธิ์ก่อนเรียน
บทที่ 1 ภาษาคอมพิวเตอร์
บทที่ 2 แนวคิดการโปรแกรม
บทที่ 3 ผังงาน
บทที่ 4 รหัสเทียม
บทที่ 5 โครงสร้างภาษาซี
บทที่ 6 ติดตั้งโปรแกรม Dev-c
บทที่ 7 ตัวแปรภาษาซี
บทที่ 8 ตัวดำเนินการภาษาซี
บทที่ 9แสดงผล/รับข้อมูล
บทที่10 ควบคุมการแสดงผล
บทที่ 11 การเลือกทำตามเงื่อนไข
บทที่ 12 การเลือกทำตามเงื่อนไข
แบบทดสอบผลสัมฤทธิ์หลังเรียน
แหล่งศึกษาเพิ่มเติม

 

        คำสั่ง 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 (สิ้นสุดโปรแกรม)

 

ผลลัพธ์