วันจันทร์ที่ 19 กันยายน พ.ศ. 2554

การเขียนโปรแกรมแบบเงื่อนไข

1.switch case

ฟังก์ชัน SWITCH … CASE

     ในเนื้อหาที่ผ่านมา นักเรียนได้พบกับเงื่อนไขสองทางเลือก และเงื่อนไขสองทางเลือกหลายๆเงื่อนไขในโจทย์เดียว แล้วถ้าหากเงื่อนไขเดียวแต่มีหลายทางเลือกล่ะ จะเป็นอย่างไร ?
          ให้นักเรียนพิจารณาดูข้อความต่อไปนี้
                   นักเรียนชอบสีในข้อใดมากที่สุด
                             A. สีฟ้า
                             B. สีแดง
                             C. สีเหลือง
                             D. สีชมพู
                             E. สีขาว
จากข้อความ เงื่อนไขเดียวเท่านั้นคือชอบสีใดมากที่สุดจาก 5 ตัวเลือก เราสามารถเขียนผังงาน (Flowchart) ได้ดังนี้
จากผังงานสามารถใช้ if else เขียนโค้ดโปรแกรมได้ดังนี้
          #include<stdio.h>
          #include<conio.h>
          main(){
                   char ch;
                   puts(“A. Blue”);
                   puts(“B. Red”);
                   puts(“C. Yellow”);
                   puts(“D. Pink”);
                   puts(“E. White”);
                   printf(“What’s your favorite color ( A – E ) :”);
                   scanf(“%c”,&ch);
                   if(ch==’A’){ printf(“Blue”); }
                             else if(ch==’B’){ printf(“Red”); }
                                      else if(ch==’C’){ printf(“Yellow”); }
                                                else if(ch==’D’){ printf(“Pink”); }
                                                          else{ printf(“White”); }
                   getch();
          }
       จากโค้ดโปรแกรมนักเรียนจะเห็นว่าในการเปรียบเทียบว่าเลือกสีอะไรจะต้องสร้างเงื่อนไขขึ้นมาทุกครั้ง แล้วถ้าหากว่าเราไม่ใช้ฟังก์ชัน IF ELSE ล่ะ จะใช้ฟังก์ชันอะไรดี?
           ในการโปรแกรมเงื่อนไขแบบหลายตัวเลือก ภาษาซีมีฟังก์ชัน SWITCH…CASE ไว้จัดการกับตัวเลือกเหล่านั้นครับ
 รูปแบบฟังก์ชัน SWITCH…CASE
          SWITCH ( ตัวแปร )
          {
                   case ค่าที่ 1:     คำสั่ง ;            Break;
                   case ค่าที่ 2:     คำสั่ง ;            Break;
                   case ค่าที่ 3:     คำสั่ง ;            Break;
                   case ค่าที่ n:     คำสั่ง ;            Break;
                   default:          ถ้าไม่เข้ากับเงื่อนไขใด ๆ จะมาทำคำสั่งที่นี่
          }
จากผังงานเราสามารถเขียนโปรแกรมโดยใช้ SWITCH…CASE ได้ดังนี้
          #include<stdio.h>
          #include<conio.h>
          main(){
                   char ch;
                   puts(“A. Blue”);
                   puts(“B. Red”);
                   puts(“C. Yellow”);
                   puts(“D. Pink”);
                   puts(“E. White”);
                   printf(“What’s your favorite color ( A – E ) :”);
                   scanf(“%c”,&ch);
                   switch(ch)
                   {         case ‘A’:        printf(“Blue”) ;          break ;
                             case ‘B’:        printf(“Red”) ;           break ;
                             case ‘C’:        printf(“Yellow”) ;       break ;
                             case ‘D’:        printf(“Pink”) ;           break ;
                             case ‘E’:         printf(“White”) ;         break ;
                             default :         printf(“Every Color”);
                   }
                   getch();
                   }
       นักเรียนจะสังเกตเห็นได้ว่าเราเขียนคำสั่งสั้นขึ้น ซึ่งให้ผลลัพธ์เหมือนกัน ฟังก์ชันนี้เหมาะสำหรับทำอะไรแนวๆ เมนู ประมาณนั้น ขอให้นักเรียนรู้จักประยุกต์ใช้ฟังก์ชันแต่ละฟังก์ชันให้เหมาะกับการใช้งานด้วยนะครับ …