———————————————————————————————————————————

สื่อวีดิทัศน์การสอน เรื่อง :: การตรวจสอบเงื่อนไข คำสั่ง if-else if ::   

———————————————————————————————————————————

3. คำสั่งกำหนดเงื่อนไข if-else if 1
        คำสั่ง 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)



———————————————————————————————————————————