คำสั่ง if | คำสั่ง if-else | คำสั่ง if-else if | คำสั่ง Nested if

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

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

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

4. คำสั่งกำหนดเงื่อนไข Nested if 1
       คำสั่ง Nested if เป็นการเขียนคำสั่ง if ซ้อน if เพื่อเป็นการตรวจสอบเงื่อนไขแบบซับซ้อนมากขึ้น โดยจะมีการตรวจสอบเงื่อนไขที่ 1 ก่อน ถ้าเป็นจริงก็จะตรวจสอบเงื่อนไขที่ 2 ต่อไป

       รูปแบบคำสั่ง


if (Condition-1)
{
     if (Condition-2)
     {
          if (Condition-N)
          Statement;
     }
}

                      หรือการนำเอาเครื่องหมาย { } มาช่วยในการทำงานแบบหลายคำสั่ง

if (Condition-1)
{
     if (Condition-2)
     {
          if (Condition-N)
          {
               Statement1;
               Statement2;
               StatementN;
          }
      }
}

        ตัวอย่างโปรแกรม
                คุณครูต้องการทราบคะแนนของนักเรียนชั้น ม.4/1 แต่ละคนภายในห้อง ว่านักเรียนมีคะแนน
        มากกว่า 50 คะแนนและมีคะแนนอยู่ในช่วง 80 ถึง 100 คะแนนหรือไม่ ถ้าใช่ ให้แสดงข้อความว่า
        Your score is very good บนจอภาพ จึงให้นักเรียนเขียนโปรแกรมเพื่อรับข้อมูลคะแนน
        ของนักเรียนแต่ละคน ดังนี้
                “ให้นักเรียนเขียนโปรแกรมโดยแสดงข้อความว่า Enter your score : บนจอภาพ พร้อมรับ
        ค่าตัวแปร score %d (เลขจำนวนเต็ม) และตรวจสอบเงื่อนไขของตัวแปร score ที่รับเข้ามา          ตรวจสอบเงื่อนไข  ว่าคะแนน score มีค่ามากกว่า 50 หรือไม่ ถ้าใช่ ให้ทำการตรวจสอบเงื่อนไขของ
        คะแนนอีกครั้งว่า คะแนนอยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าใช่ให้แสดงข้อความว่า Your score is
        very good บนจอภาพ”


        วิเคราะห์ปัญหา (Analysis)
                สิ่งที่โจทย์กำหนด :: กำหนดให้ตัวแปร score เก็บข้อมูลคะแนนของนักเรียนแต่ละคน โดยใช้
        Format Code ชนิด Integer กำหนดการรับค่าตัวแปร score แบบ %d (เลขจำนวนเต็ม)
        กำหนดการตรวจสอบเงื่อนไขว่าตัวแปร score ที่รับเข้ามา  ตรวจสอบเงื่อนไขว่าคะแนน score มีค่า
        มากกว่า 50 หรือไม่  ถ้าใช่ให้ทำการตรวจสอบเงื่อนไขของคะแนนอีกครั้งว่า คะแนนอยู่ในช่วง 80
        ถึง 100 หรือไม่  ถ้าใช่ ให้แสดงข้อความว่า Your score is very good บนจอภาพ
                สิ่งที่โจทย์ต้องการ :: แสดงคะแนนของนักเรียนแต่ละคนภายในห้อง ด้วยค่าของตัวแปร score
        ที่เก็บคะแนนของนักเรียนแต่ละคน จากการรับข้อมูลเข้ามาในระบบ ถ้าหากตัวแปร score มีค่า
        มากกว่า 50 คะแนน และคะแนนนั้นมีค่าตั้งแต่ 80 ถึง 100 ให้แสดงข้อความว่า Your score is
        very good


        การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้

Pseudo Code
Algorithm Nested if
  1. Start
  2. int score
  3. Print Enter your score
:
  4. Input score
  5. if (score >= 50)
    5.1 if ((score >=80) && (score <=100))
      5.1.1 Print Your score is very good
  6. End

Flowchart

        เขียนโปรแกรม (Coding) 

บรรทัดที่
โปรแกรม
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int score;
int main( )
{
     printf(" Enter your score : ");
     scanf("%d",&score);
     if (score >= 50)
          if ((score >=80) && (score <=100))
               printf("Your score is very good \n");
}

        อธิบายโปรแกรม

บรรทัดที่ 1
กำหนดใช้งานไลบรารีชื่อ stdio.h
บรรทัดที่ 2
กำหนดตัวแปรชนิด Integer ชื่อ score
บรรทัดที่ 3
กำหนดเริ่มโปรแกรมหลัก int main( )
บรรทัดที่ 4
เริ่มชุดคำสั่ง int main( ) ด้วย {
บรรทัดที่ 5
แสดงข้อความบนจอภาพ Enter your score :
บรรทัดที่ 6
รับค่าตัวแปร score
บรรทัดที่ 7
ตรวจสอบเงื่อนไขว่าคะแนน (score) มีค่ามากกว่า 50 หรือไม่ ถ้าจริงก็จะทำบรรทัดที่ 8 แต่ถ้าไม่จริงก็จะจบการทำงาน
บรรทัดที่ 8
ตรวจสอบเงื่อนไขของคะแนนอีกครั้งว่า คะแนนอยู่ในช่วง 80 ถึง 100
หรือไม่ ถ้าจริงก็จะไปทำงานที่บรรทัดที่ 9
บรรทัดที่ 9
แสดงข้อความ Your score is very good
บรรทัดที่ 10
สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย }

        
ผลลัพธ์บนจอภาพ
 
                โปรแกรมจะแสดงข้อความ Enter your score : ตามด้วยค่าของตัวแปร score ที่เก็บ
        คะแนนของนักเรียนแต่ละคน จากการรับข้อมูลเข้ามาในระบบ ถ้าหากตัวแปร score มีค่ามากกว่า
        50 คะแนน และคะแนนนั้นมีค่าตั้งแต่ 80 ถึง 100 ให้แสดงข้อความว่า Your score is very good


Enter your score : 89         (ผู้ใช้งานกรอกเลข 89 เข้ามาแล้วกดปุ่ม Enter) 
Your score is very good      (แสดงข้อความบนจอภาพ)

        
การทดสอบการทำงานของโปรแกรมจากเว็บ https://repl.it/languages/c
                คลิกเครื่องหมาย  เพื่อดูผลผลลัพธ์การทำงานของโปรแกรมด้านล่าง
        (ลิงค์สำรอง https://repl.it/repls/MenacingLongtermRegister)


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