SlideShare a Scribd company logo
บทที่ 8
                                                 โครงสร้างแบบมีทางเลือก
เนื้อหา
          1.   คําสั่ง if
          2.   คําสั่ง if else
          3.   คําสั่ง if else if
          4.   คําสั่ง switch … case

ผลการเรียนรู้ท่คาดหวัง
               ี
      เขียนโปรแกรมที่มีโครงสร้างการทํางานแบบมีทางเลือกได้



        ในการเขียนโปรแกรมคอมพิวเตอร์บางครั้งจะต้องมีการให้โปรแกรมมีทางเลือก เพื่อที่จะทํางาน
อย่างใดอย่างหนึ่ง โดยถ้าเงื่อนไขเป็นจริงจะทํา ถ้าเงื่อนไขเป็นเท็จจะไม่ทํา ตัวอย่างการทํางานใน
คอมพิวเตอร์ที่อาจพบบ่อย เช่น กรณีที่เราใช้งานโปรแกรม Microsoft Word เมื่อเราปิดโปรแกรมโดยไม่ได้
บันทึก จะมีการเตือนให้เลือกบันทึกข้อมูลไว้ในดิสก์คือ
        กรณีเลือก Yes จะบันทึกข้อมูลในดิสก์
        กรณีเลือก No จะไม่บันทึกข้อมูล
          ในบทนี้จะกล่าวถึงโครงสร้างการทํางานแบบมีทางเลือกโดยในที่นี้แบ่งเป็น 4 ลักษณะ คือ
                  1. คําสั่ง if
                  2. คําสั่ง if else
                  3. คําสั่ง if else if
                  4. คําสั่ง switch … case




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                                    ภาคเรียนที่ 1/2554
-2-

    1. คําสั่ง if เป็นคําสั่งที่มีการทดสอบเงื่อนไข (จริง/เท็จ) ก่อนที่จะทํางานตามคําสั่งที่กําหนด คําสั่ง if มี
รูปแบบดังรูปที่ 1.1
                           if(expression)
                                   statement A;
                                                                                  ก
                           -----------------------------------------------------------
                           if(expression)
                           {       statement A1;
                                                                                  ข
                                   statement A2;
                                   …
                                   statement An;
                           }

                                     รูปที่ 1.1 รูปแบบการใช้งานคําสั่ง if
                                      (ก) กรณีภายใต้ if มีกจกรรมเดียว
                                                           ิ
                               (ข) กรณีภายใต้ if มีกิจกรรมมากกว่าหนึ่งกิจกรรม


          โดย expression เป็นเงื่อนไขที่มีค่าความจริงได้เพียงแบบเดียวคือ จริง หรือ เท็จ เท่านั้น ถ้ามีค่าเป็น
จริงจะทําตามคําสั่งชุด A จากนั้นจึงออกไปทําตามคําสั่งถัดไปตามปกติ แต่ถ้าเงื่อนไขมีค่าเป็นเท็จ จะไม่ทําตาม
คําสั่งในชุด A ส่วนคําสั่งที่อยู่ถดไป(ถ้ามี) ก็จะมีการทํางานตามปกติ
                                  ั


                                                               จริง
                                            เงื่อนไข
                                                  เท็จ
                                                                      คําสั่งชุด A




                              รูปที่ 1.2 ส่วนของผังงานแทนการทํางานของคําสั่ง if

    ตัวอย่างที่ 1.1
                      #include<stdio.h>
                      int main()
                      {      int n;
                             printf(" Enter Number n= ");
                             scanf("%d",&n);
                             if(n>0)
                                     printf("positive number");
                             return 0;
                      }




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                                              ภาคเรียนที่ 1/2554
-3-

    ตัวอย่างที่ 1.2
                      #include<stdio.h>
                      int main()
                      {
                             int magic=123, guess;
                             printf(" Enter Number = ");
                             scanf("%d",&guess);
                             if(guess == magic)
                                     printf("right");
                             printf("nbye");
                             return 0;
                      }


    ตัวอย่างที่ 1.3
                      #include<stdio.h>
                      int main()
                      {
                             int answer;
                             printf(" What is 4+5 ? ");
                             scanf("%d",&answer);
                             if(answer == 4+5)
                             {
                                     printf("right");
                                     printf("nbye");
                             }
                             return 0;
                      }




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน    ภาคเรียนที่ 1/2554
-4-

    2. คําสั่ง if else . เป็นคําสั่งที่มีการทดสอบเงื่อนไขแบบ 2 ทางเลือก ถ้าเงื่อนไขเป็นจริง ให้ทําตามคําสั่ง
    ชุด A แต่ถ้าเงื่อนไขเป็นเท็จ ให้ทําตามคําสั่งชุด B หรือกล่าวได้ว่าถ้าเงื่อนไขเป็นจริงทําคําสั่งหลัง if
    (จํานวน 1 ชุดคําสั่ง) แต่ถ้าเงื่อนไขเป็นเท็จจึงไปทําหลัง else (จํานวน 1 ชุดคําสั่ง) ซึ่งจะเห็นว่าต้องเลือก
    ทําอย่างใดอย่างหนึ่งเสมอ สําหรับการทํางานของคําสั่ง if else มีรูปแบบของคําสั่ง if else ดังรูปที่ 1.3
                       if (expression)
                               statement A;
                       else
                                                                                     ก
                               statement B;
                       -----------------------------------------------------------------
                       if (expression)
                       {       statement A1;
                                                                                     ข
                               statement A2;
                               …
                               statement An;
                       }
                       else
                       {       statement B1;
                               statement B2;
                               …
                               statement Bn;
                       }

                                  รูปที่ 1.3 รูปแบบการใช้งานคําสั่ง if else
                                   (ก) กรณีภายใต้ if else มีกิจกรรมเดียว
                            (ข) กรณีภายใต้ if else มีกิจกรรมมากกว่าหนึ่งกิจกรรม


โดย expression เป็นเงื่อนไขที่มีค่าความจริงได้เพียงแบบเดียวคือ จริง หรือ เท็จ เท่านั้น ถ้ามีค่าเป็นจริง
โปรแกรมจะทํางานต่อไปในคําสั่งหลัง if คือ คําสั่งชุด A เสร็จแล้วออกจาก if โดยไม่ทําตามคําสั่งชุด B ถ้า
expression มีค่าเป็นเท็จ โปรแกรมจะทําตามคําสั่งหลัง else คือ คําสั่งชุด B แล้วออกไปโดยไม่ทําตามคําสั่ง
ชุด A


                                                                 จริง
                                             เงื่อนไข
                                                    เท็จ
                                            คําสั่งชุด B                คําสั่งชุด A



                           รูปที่ 1.4 ส่วนของผังงานแทนการทํางานของคําสั่ง if else


รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                                           ภาคเรียนที่ 1/2554
-5-

ตัวอย่างที่ 1.4
                  #include<stdio.h>
                  int main()
                  {      int n;
                         printf("Enter Integer Number : "); scanf("%d",&n);
                         if(n>0)
                         {       printf("positive number n");
                         } // end if
                         else
                         {       printf("negative number or zeron");
                         } // end else
                         return 0;
                  }


ตัวอย่างที่ 1.5
                  #include<stdio.h>
                  int main()
                  {      int n1,n2;
                         printf("Enter first number : ");       scanf("%d",&n1);
                         printf("Enter second number : ");      scanf("%d",&n2);
                         if(n2 == 0)
                         {       printf("can not divide by zeron");
                         }// end if
                         else
                         {       printf("answer is %d",n1/n2);
                         } // end else
                         return 0;
                  }

ตัวอย่างที่ 1.6
                  #include<stdio.h>
                  int main()
                  {      int answer;
                         printf(" What is 4+5 ? ");          scanf("%d",&answer);
                         if(answer == 4+5)
                                 printf("right");
                         else
                                 printf("wrong");
                         printf("nbye");
                         return 0;
                  }




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                           ภาคเรียนที่ 1/2554
-6-

    3. คําสั่ง if else if หรือ Nested if . มีโครงสร้าง else if เพิ่มเข้ามาในคําสั่ง else ทําให้ใช้คําสั่ง else
    if เพิ่มได้ตามที่ต้องการ ใช้กับการตัดสินใจที่มีทางเลือกมากกว่า 2 ทางเลือก รูปแบบของคําสั่ง if else if
    ดังรูปที่ 1.5 โดยในที่นี้จะแสดงเฉพาะกรณีคําสั่งประกอบ ส่วนคําสั่งเดี่ยวจะอาศัยหลักการเช่นเดียวกับ
    กรณีของโครงสร้างแบบ if และ if else
                       if (expression-1)
                       {     statement A;
                       }
                                else if (expression-2)
                                {    statement B;
                                }
                                         else if (expression-n)
                                         {     statement n;
                                         }
                                                  else
                                                  {    statement n+1;
                                                  }


                                     รูปที่ 1.5 รูปแบบการใช้งานคําสั่ง if else if



                                                       เท็จ                      จริง
                                                                    เงื่อนไข 1

                                       เท็จ                         จริง
                                                เงื่อนไข 2
                                                     นไข
                                                                                        คําสั่ง
                      เท็จ       เงื่อนไข n
                                                จริง                  คําสั่ง

                 คําสั่ง                          คําสั่ง




                             รูปที่ 1.6 ส่วนของผังงานแทนการทํางานของคําสั่ง if else if




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                                           ภาคเรียนที่ 1/2554
-7-

    ตัวอย่างที่ 1.7
          #include<stdio.h>
          int main()
          {      int n;
                 printf("Enter Integer Number : "); scanf("%d",&n);
                 if(n>0)
                 {        printf("positive number n");
                 }
                  else if(n<0)
                 {        printf("negative numbern");
                 }
                 else
                 {        printf("zeron");
                 }
                 return 0;
          }


    ตัวอย่างที่ 1.8
           #include<stdio.h>
           #include<conio.h>
           int main()
           {      int a,b;
                  char ch;
                  printf("Do you want to n");
                  printf("A:Add, S:Subtract, M: Multiply, or D:Divide ? n ");
                  printf("Enter the first letter :");          ch=getchar();
                  printf("Enter the fiist number :");          scanf("%d",&a);
                  printf("Enter the second number :");         scanf("%d",&b);
                  if((ch= ='A') || (ch= ='a'))
                           printf("result = %d",a+b);
                  else if((ch= ='S') || (ch= ='s'))
                           printf("result = %d",a-b);
                  else if((ch= ='M') || (ch= ='m'))
                           printf("result = %d",a*b);
                  else if( ((ch=='D') || (ch=='d')) && (b != 0))
                           printf("result = %d",a/b);
                  return 0;
           }




รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                        ภาคเรียนที่ 1/2554
-8-

    4. คําสั่ง switch…case .
            เป็นคําสั่งที่ใช้ทดสอบเงื่อนไขและมีทางเลือกของการตัดสินใจหลายทาง ทํานองเดียวกับคําสั่ง if else if
แต่นิยมใช้คําสั่ง switch มากกว่า เพราะมีรูปแบบที่เข้าใจได้ง่าย สะดวกในการแก้ไขในกรณีที่มีการผิดพลาด รูปแบบ
การทํางานดังรูปที่ 1.7 อย่างไรก็ตามการเลือกใช้ switch ยังมีข้อจํากัดบางประการเนื่องจากค่าคงที่(constant) หลัง
case จะต้องเป็นชนิด int หรือ char เท่านั้น ดังนั้นในการพิจารณาเลือกใช้ if หรือ switch จะต้องพิจาณาในส่วนนี้
ด้วย
              switch (expression)
              {
                     case (constant-1) :           statements;
                                                   break;

                       case (constant-2):          statements;
                                                   break;

                       …

                       case (constant-n):          statements;
                                                   break;

                       default :
                                       รูปที่ 1.7 รูstatements; านคําสั่ง switch
                                                    ปแบบการใช้ง
              }


         expression ของ switch จะถูกใช้เพื่อเปรียบเทียบค่าว่าตรงกับ constant ของ case ใด โดยโปรแกรมจะ
ปฏิบัติตามคําสั่งต่าง ๆ ใน case นั้น ส่วนคําสั่ง break; จะเป็นคําสั่งให้ออกจากคําสั่ง switch ในกรณีท่ีไม่มีคําสั่ง
break โปรแกรมจะปฏิบัติเรียงตามลําดับตลอดทุกคําสั่งในทุก case ที่อยู่ต่อกัน ในกรณีที่ค่าของ expression ของ
switch ไม่ตรงกับ constant ของ case ใด โปรแกรมจะปฏิบัติตามคําสั่งใน default โดยข้อสังเกตในแต่ละ case
อาจมีคําสั่งหลายคําสั่งไม่ต้องใช้เครื่องหมาย { } คร่อมดังกรณีของคําสั่ง if แบบต่างๆ
ตัวอย่างที่ 1.9
                  #include<stdio.h>
                  #include<conio.h>
                  int main()
                  {      char operator;
                         int ans,x,y;
                         x=10; y=2;
                         printf("Enter operator : "); operator =getche(); printf("n");
                         switch (operator)
                         {
                                 case '+'       : ans =x + y; printf("answer = %d",ans); break;
                                 case '-'       : ans=x-y;      printf("answer = %d",ans); break;
                                 case '*'       : ans=x*y;      printf("answer = %d",ans); break;
                                 case '/'       : ans=x/y;      printf("answer = %d",ans); break;
                                 default        : printf("This program can use only +,-,*,/ n");
                         }return 0;
                  }


รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน                                        ภาคเรียนที่ 1/2554

More Related Content

PPT
PDF
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
PPTX
การเขียนคำสั่งควบคุมแบบมีทางเลือก.
PPT
Java Programming [3/12]: Control Structures
PDF
การเขียนคำสั่งควบคุมแบบมีทางเลือก
PDF
Java Programming: โครงสร้างควบคุม
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก.
Java Programming [3/12]: Control Structures
การเขียนคำสั่งควบคุมแบบมีทางเลือก
Java Programming: โครงสร้างควบคุม

What's hot (20)

PPT
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
PDF
การสร้างแบบสอบถาม
PDF
Advanced Excel Training (2012)
PDF
02 controlflow php
DOC
3 software deverlop
PPT
C slide
PDF
Java-Chapter 09 Advanced Statements and Applications
PPT
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
PDF
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
PDF
Java Programming: หลักการเชิงอ็อบเจกต์
PDF
Java Programming: การจัดการกับข้อผิดพลาด
PDF
Java-Chapter 04 Iteration Statements
PDF
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
PPTX
บทที่4การกำหนดและวิเคราะห์ปัญหา
PDF
ภาษา C#
PDF
Java Programming: อะเรย์และคอลเล็กชั่น
PDF
3.5 การแสดงผลและการรับข้อมูล
PDF
การเขียนฟังก์ชั่นในภาษา C
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การสร้างแบบสอบถาม
Advanced Excel Training (2012)
02 controlflow php
3 software deverlop
C slide
Java-Chapter 09 Advanced Statements and Applications
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: การจัดการกับข้อผิดพลาด
Java-Chapter 04 Iteration Statements
Java Programming: การเขียนโปรแกรมภาษาจาวาเชิงอ็อบเจกต์
บทที่4การกำหนดและวิเคราะห์ปัญหา
ภาษา C#
Java Programming: อะเรย์และคอลเล็กชั่น
3.5 การแสดงผลและการรับข้อมูล
การเขียนฟังก์ชั่นในภาษา C
Ad

Viewers also liked (16)

PPTX
List of services we provide at a2z - Accounting and consulting services
PPT
Brief
PPTX
The mandan i pad classroom professional development
PPTX
Евгений Глазов
PPS
Fascinanting
PPT
Presentasi dahsyat
PDF
Exercise 3
PPTX
Universal design
PPT
Александр Виноградский
PPT
DMA Curriculum
PPTX
Storyboard pitch of advertisement
PPTX
Операционная сторона интернет-магазина: как не терять клиентов
PPT
School magazine contents page
PPT
Sessió 1
PPT
Jeopardy
PPTX
eCommerce market in Russia by Vitaliy Panarin (Otto Group Russia)
List of services we provide at a2z - Accounting and consulting services
Brief
The mandan i pad classroom professional development
Евгений Глазов
Fascinanting
Presentasi dahsyat
Exercise 3
Universal design
Александр Виноградский
DMA Curriculum
Storyboard pitch of advertisement
Операционная сторона интернет-магазина: как не терять клиентов
School magazine contents page
Sessió 1
Jeopardy
eCommerce market in Russia by Vitaliy Panarin (Otto Group Russia)
Ad

Similar to Tech30101 ch8 (20)

PDF
chapter 3 คำสั่งควบคุม
PDF
ฟังก์ชั่น If หลายทางเลือก
PDF
Know009
PPT
บทที่ 3 คำสั่งควบคุม ส่วนที่ 1
PDF
งานทำ Blog บทที่ 6
PDF
ฟังก์ชั่น If ทางเลือกเดียว
PPT
Control structure
PPTX
บทที่ 6-เงื่อนไข-การตัดสินใจ-การควบคุม
PDF
Answer unit4.3.2
PDF
บทที่ 3 คำสั่งควบค
PPTX
งานนำเสนอ1
PPTX
Computer Programming 3
PPTX
บทที่ 6-เงื่อนไข-การตัดสินใจ-การควบคุม (1)
PDF
การควบคุมทิศทางในภาษา C
PDF
ฟังก์ชั่น If สองทางเลือก
PDF
ฟังก์ชั่น Switch
PPTX
งาน อ.ทรงศักดิ์
PDF
Programming
 
PPSX
บทที่1ProgramFlowchart สำหรับนักเรียนชั้นมัธยม
chapter 3 คำสั่งควบคุม
ฟังก์ชั่น If หลายทางเลือก
Know009
บทที่ 3 คำสั่งควบคุม ส่วนที่ 1
งานทำ Blog บทที่ 6
ฟังก์ชั่น If ทางเลือกเดียว
Control structure
บทที่ 6-เงื่อนไข-การตัดสินใจ-การควบคุม
Answer unit4.3.2
บทที่ 3 คำสั่งควบค
งานนำเสนอ1
Computer Programming 3
บทที่ 6-เงื่อนไข-การตัดสินใจ-การควบคุม (1)
การควบคุมทิศทางในภาษา C
ฟังก์ชั่น If สองทางเลือก
ฟังก์ชั่น Switch
งาน อ.ทรงศักดิ์
Programming
 
บทที่1ProgramFlowchart สำหรับนักเรียนชั้นมัธยม

Tech30101 ch8

  • 1. บทที่ 8 โครงสร้างแบบมีทางเลือก เนื้อหา 1. คําสั่ง if 2. คําสั่ง if else 3. คําสั่ง if else if 4. คําสั่ง switch … case ผลการเรียนรู้ท่คาดหวัง ี เขียนโปรแกรมที่มีโครงสร้างการทํางานแบบมีทางเลือกได้ ในการเขียนโปรแกรมคอมพิวเตอร์บางครั้งจะต้องมีการให้โปรแกรมมีทางเลือก เพื่อที่จะทํางาน อย่างใดอย่างหนึ่ง โดยถ้าเงื่อนไขเป็นจริงจะทํา ถ้าเงื่อนไขเป็นเท็จจะไม่ทํา ตัวอย่างการทํางานใน คอมพิวเตอร์ที่อาจพบบ่อย เช่น กรณีที่เราใช้งานโปรแกรม Microsoft Word เมื่อเราปิดโปรแกรมโดยไม่ได้ บันทึก จะมีการเตือนให้เลือกบันทึกข้อมูลไว้ในดิสก์คือ กรณีเลือก Yes จะบันทึกข้อมูลในดิสก์ กรณีเลือก No จะไม่บันทึกข้อมูล ในบทนี้จะกล่าวถึงโครงสร้างการทํางานแบบมีทางเลือกโดยในที่นี้แบ่งเป็น 4 ลักษณะ คือ 1. คําสั่ง if 2. คําสั่ง if else 3. คําสั่ง if else if 4. คําสั่ง switch … case รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 2. -2- 1. คําสั่ง if เป็นคําสั่งที่มีการทดสอบเงื่อนไข (จริง/เท็จ) ก่อนที่จะทํางานตามคําสั่งที่กําหนด คําสั่ง if มี รูปแบบดังรูปที่ 1.1 if(expression) statement A; ก ----------------------------------------------------------- if(expression) { statement A1; ข statement A2; … statement An; } รูปที่ 1.1 รูปแบบการใช้งานคําสั่ง if (ก) กรณีภายใต้ if มีกจกรรมเดียว ิ (ข) กรณีภายใต้ if มีกิจกรรมมากกว่าหนึ่งกิจกรรม โดย expression เป็นเงื่อนไขที่มีค่าความจริงได้เพียงแบบเดียวคือ จริง หรือ เท็จ เท่านั้น ถ้ามีค่าเป็น จริงจะทําตามคําสั่งชุด A จากนั้นจึงออกไปทําตามคําสั่งถัดไปตามปกติ แต่ถ้าเงื่อนไขมีค่าเป็นเท็จ จะไม่ทําตาม คําสั่งในชุด A ส่วนคําสั่งที่อยู่ถดไป(ถ้ามี) ก็จะมีการทํางานตามปกติ ั จริง เงื่อนไข เท็จ คําสั่งชุด A รูปที่ 1.2 ส่วนของผังงานแทนการทํางานของคําสั่ง if ตัวอย่างที่ 1.1 #include<stdio.h> int main() { int n; printf(" Enter Number n= "); scanf("%d",&n); if(n>0) printf("positive number"); return 0; } รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 3. -3- ตัวอย่างที่ 1.2 #include<stdio.h> int main() { int magic=123, guess; printf(" Enter Number = "); scanf("%d",&guess); if(guess == magic) printf("right"); printf("nbye"); return 0; } ตัวอย่างที่ 1.3 #include<stdio.h> int main() { int answer; printf(" What is 4+5 ? "); scanf("%d",&answer); if(answer == 4+5) { printf("right"); printf("nbye"); } return 0; } รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 4. -4- 2. คําสั่ง if else . เป็นคําสั่งที่มีการทดสอบเงื่อนไขแบบ 2 ทางเลือก ถ้าเงื่อนไขเป็นจริง ให้ทําตามคําสั่ง ชุด A แต่ถ้าเงื่อนไขเป็นเท็จ ให้ทําตามคําสั่งชุด B หรือกล่าวได้ว่าถ้าเงื่อนไขเป็นจริงทําคําสั่งหลัง if (จํานวน 1 ชุดคําสั่ง) แต่ถ้าเงื่อนไขเป็นเท็จจึงไปทําหลัง else (จํานวน 1 ชุดคําสั่ง) ซึ่งจะเห็นว่าต้องเลือก ทําอย่างใดอย่างหนึ่งเสมอ สําหรับการทํางานของคําสั่ง if else มีรูปแบบของคําสั่ง if else ดังรูปที่ 1.3 if (expression) statement A; else ก statement B; ----------------------------------------------------------------- if (expression) { statement A1; ข statement A2; … statement An; } else { statement B1; statement B2; … statement Bn; } รูปที่ 1.3 รูปแบบการใช้งานคําสั่ง if else (ก) กรณีภายใต้ if else มีกิจกรรมเดียว (ข) กรณีภายใต้ if else มีกิจกรรมมากกว่าหนึ่งกิจกรรม โดย expression เป็นเงื่อนไขที่มีค่าความจริงได้เพียงแบบเดียวคือ จริง หรือ เท็จ เท่านั้น ถ้ามีค่าเป็นจริง โปรแกรมจะทํางานต่อไปในคําสั่งหลัง if คือ คําสั่งชุด A เสร็จแล้วออกจาก if โดยไม่ทําตามคําสั่งชุด B ถ้า expression มีค่าเป็นเท็จ โปรแกรมจะทําตามคําสั่งหลัง else คือ คําสั่งชุด B แล้วออกไปโดยไม่ทําตามคําสั่ง ชุด A จริง เงื่อนไข เท็จ คําสั่งชุด B คําสั่งชุด A รูปที่ 1.4 ส่วนของผังงานแทนการทํางานของคําสั่ง if else รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 5. -5- ตัวอย่างที่ 1.4 #include<stdio.h> int main() { int n; printf("Enter Integer Number : "); scanf("%d",&n); if(n>0) { printf("positive number n"); } // end if else { printf("negative number or zeron"); } // end else return 0; } ตัวอย่างที่ 1.5 #include<stdio.h> int main() { int n1,n2; printf("Enter first number : "); scanf("%d",&n1); printf("Enter second number : "); scanf("%d",&n2); if(n2 == 0) { printf("can not divide by zeron"); }// end if else { printf("answer is %d",n1/n2); } // end else return 0; } ตัวอย่างที่ 1.6 #include<stdio.h> int main() { int answer; printf(" What is 4+5 ? "); scanf("%d",&answer); if(answer == 4+5) printf("right"); else printf("wrong"); printf("nbye"); return 0; } รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 6. -6- 3. คําสั่ง if else if หรือ Nested if . มีโครงสร้าง else if เพิ่มเข้ามาในคําสั่ง else ทําให้ใช้คําสั่ง else if เพิ่มได้ตามที่ต้องการ ใช้กับการตัดสินใจที่มีทางเลือกมากกว่า 2 ทางเลือก รูปแบบของคําสั่ง if else if ดังรูปที่ 1.5 โดยในที่นี้จะแสดงเฉพาะกรณีคําสั่งประกอบ ส่วนคําสั่งเดี่ยวจะอาศัยหลักการเช่นเดียวกับ กรณีของโครงสร้างแบบ if และ if else if (expression-1) { statement A; } else if (expression-2) { statement B; } else if (expression-n) { statement n; } else { statement n+1; } รูปที่ 1.5 รูปแบบการใช้งานคําสั่ง if else if เท็จ จริง เงื่อนไข 1 เท็จ จริง เงื่อนไข 2 นไข คําสั่ง เท็จ เงื่อนไข n จริง คําสั่ง คําสั่ง คําสั่ง รูปที่ 1.6 ส่วนของผังงานแทนการทํางานของคําสั่ง if else if รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 7. -7- ตัวอย่างที่ 1.7 #include<stdio.h> int main() { int n; printf("Enter Integer Number : "); scanf("%d",&n); if(n>0) { printf("positive number n"); } else if(n<0) { printf("negative numbern"); } else { printf("zeron"); } return 0; } ตัวอย่างที่ 1.8 #include<stdio.h> #include<conio.h> int main() { int a,b; char ch; printf("Do you want to n"); printf("A:Add, S:Subtract, M: Multiply, or D:Divide ? n "); printf("Enter the first letter :"); ch=getchar(); printf("Enter the fiist number :"); scanf("%d",&a); printf("Enter the second number :"); scanf("%d",&b); if((ch= ='A') || (ch= ='a')) printf("result = %d",a+b); else if((ch= ='S') || (ch= ='s')) printf("result = %d",a-b); else if((ch= ='M') || (ch= ='m')) printf("result = %d",a*b); else if( ((ch=='D') || (ch=='d')) && (b != 0)) printf("result = %d",a/b); return 0; } รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554
  • 8. -8- 4. คําสั่ง switch…case . เป็นคําสั่งที่ใช้ทดสอบเงื่อนไขและมีทางเลือกของการตัดสินใจหลายทาง ทํานองเดียวกับคําสั่ง if else if แต่นิยมใช้คําสั่ง switch มากกว่า เพราะมีรูปแบบที่เข้าใจได้ง่าย สะดวกในการแก้ไขในกรณีที่มีการผิดพลาด รูปแบบ การทํางานดังรูปที่ 1.7 อย่างไรก็ตามการเลือกใช้ switch ยังมีข้อจํากัดบางประการเนื่องจากค่าคงที่(constant) หลัง case จะต้องเป็นชนิด int หรือ char เท่านั้น ดังนั้นในการพิจารณาเลือกใช้ if หรือ switch จะต้องพิจาณาในส่วนนี้ ด้วย switch (expression) { case (constant-1) : statements; break; case (constant-2): statements; break; … case (constant-n): statements; break; default : รูปที่ 1.7 รูstatements; านคําสั่ง switch ปแบบการใช้ง } expression ของ switch จะถูกใช้เพื่อเปรียบเทียบค่าว่าตรงกับ constant ของ case ใด โดยโปรแกรมจะ ปฏิบัติตามคําสั่งต่าง ๆ ใน case นั้น ส่วนคําสั่ง break; จะเป็นคําสั่งให้ออกจากคําสั่ง switch ในกรณีท่ีไม่มีคําสั่ง break โปรแกรมจะปฏิบัติเรียงตามลําดับตลอดทุกคําสั่งในทุก case ที่อยู่ต่อกัน ในกรณีที่ค่าของ expression ของ switch ไม่ตรงกับ constant ของ case ใด โปรแกรมจะปฏิบัติตามคําสั่งใน default โดยข้อสังเกตในแต่ละ case อาจมีคําสั่งหลายคําสั่งไม่ต้องใช้เครื่องหมาย { } คร่อมดังกรณีของคําสั่ง if แบบต่างๆ ตัวอย่างที่ 1.9 #include<stdio.h> #include<conio.h> int main() { char operator; int ans,x,y; x=10; y=2; printf("Enter operator : "); operator =getche(); printf("n"); switch (operator) { case '+' : ans =x + y; printf("answer = %d",ans); break; case '-' : ans=x-y; printf("answer = %d",ans); break; case '*' : ans=x*y; printf("answer = %d",ans); break; case '/' : ans=x/y; printf("answer = %d",ans); break; default : printf("This program can use only +,-,*,/ n"); }return 0; } รายวิชา ง30101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขั้นตน ภาคเรียนที่ 1/2554