———————————————————————————————————————————
สื่อวีดิทัศน์การสอน เรื่อง :: การตรวจสอบเงื่อนไข คำสั่ง if-else if ::
———————————————————————————————————————————
3. คำสั่งกำหนดเงื่อนไข if-else if
คำสั่ง if-else if เป็นคำสั่งที่กำหนดการเลือกกระทำตามเงื่อนไขที่ 1 เมื่อเงื่อนไขเป็นจริง (True)
ก็จะทำตามคำสั่งหลังเงื่อนไข หากเป็นเท็จก็จะทำตามคำสั่งหลัง else และจะมีการตรวจสอบเงื่อนไขที่ 2
และเงื่อนไขต่อ ๆ ไปอีก ถ้าเงื่อนไขเป็นจริงก็จะทำงานตามเงื่อนไขที่ได้กำหนดไว้
รูปแบบคำสั่ง
if (Condition-1)
Statement ;
else if (Condition-2)
Statement;
else if (condition-N)
Statement; |
หรือการนำเอาเครื่องหมาย { } มาช่วยในการทำงานแบบหลายคำสั่ง
if (Condition-1)
{
Statement;
Statement;
}
else if (Condition-2)
{
Statement;
Statement;
}
else if (Condition-N)
{
Statement;
Statement;
}
else
Statement; |
ตัวอย่างโปรแกรม
คุณครูต้องการทราบเกรดของนักเรียนแต่ละคน ในรายวิชาคอมพิวเตอร์ตามช่วงคะแนนที่
กำหนดให้ เช่น 80 คะแนน จะแสดงข้อความ Your grade is A บนจอภาพ เป็นต้น จึงให้นักเรียน
เขียนโปรแกรมเพื่อรับข้อมูลเป็นคะแนนนักเรียนแต่ละคน ดังนี้
“ให้นักเรียนเขียนโปรแกรมโดยแสดงข้อความบนจอภาพว่า Enter your score : รับค่า
ตัวแปร score ชนิด Integer ตรวจสอบเงื่อนว่าค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็น
จริง ให้แสดงข้อความว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score
อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่
ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า
Your grade is C ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง
ให้แสดงข้อความว่า Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49
หรือไม่
ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is E คำสั่ง else และหากเงื่อนไขเป็นเท็จ
ให้แสดงข้อความว่า Your score is out of range”
ช่วงคะแนนที่กำหนดให้
คะแนนอยู่ในช่วง |
80 ถึง 100 |
ได้เกรด A |
คะแนนอยู่ในช่วง |
70 ถึง 79 |
ได้เกรด B |
คะแนนอยู่ในช่วง |
60 ถึง 69 |
ได้เกรด C |
คะแนนอยู่ในช่วง |
50 ถึง 59 |
ได้เกรด D |
คะแนนอยู่ในช่วง |
0 ถึง 49 |
ได้เกรด E |
วิเคราะห์ปัญหา (Analysis)
สิ่งที่โจทย์กำหนด :: กำหนดให้ตัวแปร score เก็บข้อมูลคะแนนของนักเรียนแต่ละคน โดยใช้
Format Code ชนิด Integer กำหนดการรับค่าตัวแปร score แบบ %d (เลขจำนวนเต็ม)
กำหนดการตรวจสอบเงื่อนว่า ค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความ
ว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 70 ถึง
79 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไข
ต่อไปว่า ค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C
ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า
Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริงให้
แสดงข้อความว่า Your grade is E คำสั่ง else และหากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า
Your score is out of range > 30 แล้วขึ้นบรรทัดใหม่
สิ่งที่โจทย์ต้องการ :: แสดงข้อความ Enter your score : ตามด้วยค่าของตัวแปร score
จากการรับข้อมูลเข้ามาในระบบ และแสดงเกรดของนักเรียนแต่ละคนในรายวิชาคอมพิวเตอร์ตามช่วง
คะแนนที่กำหนด
หากค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า
Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 70 ถึง 79
หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไป
ว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C
ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า
Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริง
ให้แสดงข้อความว่า Your grade is E และใช้คำสั่ง else หากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า
Your score is out of range > 30 แล้วขึ้นบรรทัด
การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้
Pseudo Code |
Algorithm if-else if
1. int score
2. Print Enter your score :
3. Input score
4. ((score >= 80) && (score <= 100))
4.1 Print Your grade is A
5. else if ((score >=70) && (score <= 79))
5.1 Print Your grade is B
6. else if ((score >=60) && (score <= 69))
6.1 Print Your grade is C
7. else if ((score >=50) && (score <= 59))
7.1 Print Your grade is D
8. else if ((score >=0) && (score <= 49))
8.1 Print Your grade is E
9.
else
9.1 Your score is out of range
10. End |
Flowchart |
|
เขียนโปรแกรม (Coding)
บรรทัดที่ |
โปรแกรม |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
#include <stdio.h>
int score;
int main( )
{
printf(" Enter your score : ");
scanf("%d",&score);
if ((score >= 80) && (score <= 100))
printf("Your grade is A\n");
else if ((score >=70) && (score <= 79))
printf("Your grade is B \n");
else if ((score >=60) && (score <= 69))
printf("Your grade is C \n");
else if ((score >=50) && (score <= 59))
printf("Your grade is D \n");
else if ((score >=0) && (score <= 49))
printf("Your grade is E \n");
else
printf("Your score is out of range \n");
} |
อธิบายโปรแกรม
บรรทัดที่ 1 |
กำหนดใช้งานไลบรารีชื่อ stdio.h ให้ทำงาน |
บรรทัดที่ 2 |
กำหนดตัวแปรชนิด Integer ชื่อ score |
บรรทัดที่ 3 |
กำหนดเริ่มต้นโปรแกรมหลัก int main( ) |
บรรทัดที่ 4 |
เริ่มชุดโปรแกรมหลักด้วยเครื่องหมาย { |
บรรทัดที่ 5 |
แสดงข้อความบนจอภาพ Enter your score : |
บรรทัดที่ 6 |
รับค่าตัวแปร score |
บรรทัดที่ 7 |
ตรวจสอบเงื่อนว่าค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่
ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 9 |
บรรทัดที่ 8 |
แสดงข้อความ Your grade is A แล้วขึ้นบรรทัดใหม่ |
บรรทัดที่ 9 |
ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่
ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปบรรทัดที่ 11 |
บรรทัดที่ 10 |
แสดงข้อความ Your grade is B แล้วขึ้นบรรทัดใหม่ |
บรรทัดที่ 11 |
ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่
ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปบรรทัดที่ 13 |
บรรทัดที่ 12 |
แสดงข้อความ Your grade is C แล้วขึ้นบรรทัดใหม่ |
บรรทัดที่ 13 |
ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่
ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 15 |
บรรทัดที่ 14 |
แสดงข้อความ Your grade is D แล้วขึ้นบรรทัดใหม่ |
บรรทัดที่ 15 |
ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่
ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 17 |
บรรทัดที่ 16 |
แสดงข้อความ Your grade is E |
บรรทัดที่ 17 |
เขียนคำสั่ง else หากเงื่อนไขเป็นเท็จ ให้ทำหลังคำสั่งนี้ |
บรรทัดที่ 18 |
แสดงข้อความ Your score is out of range |
บรรทัดที่ 19 |
สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย } |
ผลลัพธ์บนจอภาพ
โปรแกรมจะแสดงข้อความ Enter your score : ตามด้วยค่าของตัวแปร score
จากการรับข้อมูลเข้ามาในระบบ และแสดงเกรดของนักเรียนแต่ละคนในรายวิชาคอมพิวเตอร์ตามช่วง
คะแนนที่กำหนด
หากค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า
Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 70 ถึง 79
หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไป
ว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C
ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า
Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริง
ให้แสดงข้อความว่า Your grade is E และใช้คำสั่ง else หากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า
Your score is out of range > 30 แล้วขึ้นบรรทัด
Enter your score : 80 (ผู้ใช้งานกรอกเลข 80 เข้ามาแล้วกดปุ่ม Enter)
Your grade is A (แสดงข้อความบนจอภาพ) |
การทดสอบการทำงานของโปรแกรมจากเว็บ https://repl.it/languages/c
คลิกเครื่องหมาย เพื่อดูผลผลลัพธ์การทำงานของโปรแกรมด้านล่าง
(ลิงค์สำรอง https://repl.it/repls/DarkvioletMediumpurpleWeb)
——————————————————————————————————————————— |