ข้อใด เป็น หลักการ ทำงาน ของคำสั่ง select case ที่ ถูก ต้อง ที่สุด

สื่อวีดิทัศน์การสอน เรื่อง :: การเลือกทำงานของโปรแกรม คำสั่ง switch-case ::   

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

คำสั่งเลือกการทำงาน switch-case
ข้อใด เป็น หลักการ ทำงาน ของคำสั่ง select case ที่ ถูก ต้อง ที่สุด

       คำสั่ง switch-case นี้จะใช้ในกรณีที่มีหลายทางเลือก แต่ใช้ค่าของตัวแปรเพียงตัวเดียวมาตรวจสอบกับค่าคงที่ ถ้าตรวจสอบแล้วมีค่าตรงกับค่าคงที่ใดก็จะไปทำงานส่วนการทำงานของค่าคงที่นั้น และหากค่าที่นำมาตรวจสอบไม่ตรงกับค่าคงที่ใด ๆ ก็จะทำงานในส่วนของ default      

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

switch(Variable)
{
     case Constant1 :
          Statement;
          break;
     case Constant2 :
          Statement;     
          break;
     case Constant3 :
          Statement;
          break;
     case Constant4 :
          Statement;
          break;
     default :
          Statement;
}

              หรือการทำงานในแต่ละเงื่อนไขแบบหลายคำสั่ง สามารถเขียนชุดคำสั่ง (Statement)           
       เพิ่มได้แล้วจบด้วยคำสั่ง break;

switch(Variable)
{
     case Constant1 :
          Statement;
          Statement;
          break;
     case Constant2 :
          Statement;
          Statement;
          break;
     case Constant3 :
          Statement;
          Statement;
          break;
     case Constant4 :
          Statement;
          Statement;
          break;
     default :
          Statement;
          Statement;
}


        ตัวอย่างโปรแกรม
                คุณครูต้องการทราบเกรดของนักเรียนแต่ละคนในรายวิชาวิทยาการคำนวณ ว่าเกรดที่นักเรียน
        ได้รับอยู่ในช่วงคะแนนใดจากที่กำหนดให้ เช่น เกรด A ให้แสดงข้อความ Your score 80-100
        points เป็นต้น จึงให้นักเรียนเขียนโปรแกรมเพื่อรับข้อมูลเป็นเกรดของนักเรียนแต่ละคน ดังนี้
                “ให้นักเรียนเขียนโปรแกรมโดยแสดงข้อความ Enter your grade (A-E) : บนจอภาพ
        พร้อมรับค่าตัวแปร grade แบบ %c (ตัวอักขระ) และตรวจสอบเงื่อนไขว่าตรงกับค่าใด ซึ่งตัวอักษรที่
        สามารถตรวจสอบได้ตรงกับเงื่อนไขคือ ตัวอักษร A ถึง E จากนั้นให้โปรแกรมแสดงช่วงของคะแนน
        นั้น ๆ ออกมาบนจอภาพ แต่ถ้าหากค่าของตัวแปร grade ไม่ตรงกับค่าใด ก็ให้ไปทำงานที่ default
        และแสดงข้อความว่า "Please enter character (A-E) only, Thank you" ออกมาบนจอภาพ

              ช่วงคะแนนที่กำหนดให้

คะแนนอยู่ในช่วง

80 ถึง 100

ได้เกรด A

คะแนนอยู่ในช่วง

70 ถึง 79

ได้เกรด B

คะแนนอยู่ในช่วง

60 ถึง 69

ได้เกรด C

คะแนนอยู่ในช่วง

50 ถึง 59

ได้เกรด D

คะแนนอยู่ในช่วง

0 ถึง 49

ได้เกรด E

        วิเคราะห์ปัญหา (Analysis)
                สิ่งที่โจทย์กำหนด :: กำหนดให้ตัวแปร grade เก็บข้อมูลเกรดของนักเรียนแต่ละคน โดยใช้
        Format Code ชนิด Character กำหนดการรับค่าตัวแปร gradeแบบ %c (ตัวอักษร) กำหนด
        การตรวจสอบเงื่อนไขว่าตรงกับค่าใด ซึ่งตัวอักษรที่สามารถตรวจสอบได้ ตรงกับเงื่อนไขคือตัวอักษร
        A ถึง E จากนั้นให้โปรแกรมแสดงช่วงของคะแนนนั้น ๆ ออกมาบนจอภาพ แต่หากไม่ใช่ ค่าของ
        ตัวแปร grade ไม่ตรงกับค่าใดให้ไปทำงานที่ default   และแสดงข้อความว่า  "Please enter
        character (A-E) only, Thank you" ออกมาบนจอภาพ
                สิ่งที่โจทย์ต้องการ :: แสดงเกรดของนักเรียนแต่ละคนด้วยค่าของ ตัวแปร grade จากการรับ
        ข้อมูลเข้ามาในระบบ  หากตัวแปร grade ตรวจสอบเงื่อนไขว่าตรงกับค่าใด ซึ่งตัวอักษรที่สามารถ
        ตรวจสอบได้ตรงกับเงื่อนไขคือ ตัวอักษร A ถึง E จากนั้นให้โปรแกรมแสดงช่วงของคะแนนนั้น ๆ
        ออกมาบนจอภาพ แต่หากไม่ใช่ ค่าของตัวแปร grade ไม่ตรงกับค่าใด ให้ไปทำงานที่ default
        และแสดงข้อความว่า "Please enter character (A-E) only, Thank you" ออกมาบนจอภาพ

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

Pseudo Code

Algorithm switch-case
  1. char grade
  2. Print Enter your grade (A-E) :
  3. Input grade
  4. switch(grade)
    4.1 case 'A':
      4.1.1 Print Your score 80-100 points
      4.1.2 break;
    4.2 case 'B':
      4.2.1 Print Your score 70-79 points
      4.2.2 break;
    4.3 case 'C':
      4.3.1 Print Your score 60-69 points
      4.3.2 break;
    4.4 case 'D':
      4.4.1 Print Your score 50-59 points
      4.4.2 break;
    4.5 case 'E':
      4.5.1 Print Your score 0-49 points
      4.5.2 break;
    4.6 default:
      4.6.1 Print Please enter character (A-E) only, Thank you
  5. End

Flowchart

ข้อใด เป็น หลักการ ทำงาน ของคำสั่ง select case ที่ ถูก ต้อง ที่สุด

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

บรรทัดที่

โปรแกรม

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <stdio.h>
char grade;
int main( )
{
     printf(" Enter your grade (A-E) : ");
     scanf("%c",&grade);
     switch(grade)
     {
          case 'A':
               printf("Your score 80-100 points\n");
               break;
          case 'B':
               printf("Your score 70-79 points\n");
               break;
          case 'C':
               printf("Your score 60-69 points\n");
              break;
          case 'D':
               printf("Your score 50-59 points\n");
               break;
          case 'E':
               printf("Your score 0-49 points\n");
               break;
          default:
               printf("Please enter character (A-E) only, Thank you");
     }
}


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

บรรทัดที่ 1

กำหนดใช้งานไลบรารีชื่อ stdio.h

บรรทัดที่ 2

กำหนดตัวแปรชนิด character ชื่อ grade

บรรทัดที่ 3

กำหนดชุดโปรแกรมหลัก int main( )

บรรทัดที่ 4

เริ่มชุดโปรแกรมหลัก int main( ) ด้วย {

บรรทัดที่ 5

แสดงข้อความบนจอภาพ Enter your grade (A-E) :

บรรทัดที่ 6

รับค่าตัวแปร grade จากผู้ใช้งาน

บรรทัดที่ 7

นำค่าที่เก็บไว้ในตัวแปร grade มาตรวจสอบเงื่อนไขว่าตรงกับค่าใด

บรรทัดที่ 8-26

เป็นช่วงของการตรวจสอบเงื่อนไขตัวแปร grade ว่าตรงกับค่าใด
ซึ่งตัวอักษรที่สามารถตรวจสอบได้ตรงกับเงื่อนไขคือตัวอักษร
A ถึง E จากนั้นโปรแกรมก็จะแสดงช่วงของคะแนนนั้น ๆ ออกมาบนจอภาพ แต่หากไม่ค่าของตัวแปร grade ไม่ตรงกับค่าใด ก็จะไปทำงานที่ default แล้วก็จะแสดงข้อความ "Please enter character (A-E) only, Thank you" ออกมาบนจอภาพ

บรรทัดที่ 27

สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย }

       ผลลัพธ์บนจอภาพ
              โปรแกรมจะแสดงข้อความ Enter your grade (A-E) ตามด้วยค่าของตัวแปร grade ที่เก็บ
       ข้อมูลเกรดของนักเรียนแต่ละคน จากการรับข้อมูลเข้ามาในระบบ ถ้าหากตัวแปร 
grade ตรวจสอบ
       เงื่อนไขว่าตรงกับค่าใด
ซึ่งตัวอักษรที่สามารถตรวจสอบได้ตรงกับเงื่อนไขคือตัวอักษร A ถึง E จากนั้น
       โปรแกรมก็จะแสดงช่วงของคะแนนนั้น ๆ ออกมาบนจอภาพ แต่หากไม่ใช่ ค่าของตัวแปร grade ไม่ตรง
       กับค่าใด ก็จะไปทำงานที่ default แล้วก็จะแสดงข้อความ "Please enter character (A-E) only,
       Thank you" ออกมาบนจอภาพ

Enter your grade (A-E) : A    (ผู้ใช้งานกรอกตัวอักษร A เข้ามาแล้วกดปุ่ม Enter)
Your score 80-100 points     (แสดงข้อความบนจอภาพ)

(แหล่งข้อมูล...  คู่มือเรียนรู้ภาษาซีด้วยตนเอง / ผศ.รุ่งทิวา เสาร์สิงห์)

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