Page 67 - การพฒนาการหนงสออเลกทรอนกสเรองภาษาซ
P. 67

หน่วยที5 คาสั�งควบคุมแบบทางเลือก                 62                                                                    หน่วยที5 คาสั�งควบคุมแบบทางเลือก                 63
                                                           �
                                                               ํ
                                                                                                                                                                                 �
                                                                                                                                                                                      ํ
         ..................................................................................................................................................  ..................................................................................................................................................

         ผลลัพธ์ของการรันครั้งที่ 2 คือ                                                                                          ถ้า เงื่อนไขทางเลือก1 และ เงื่อนไขทางเลือก2 มีค่า จริง แล้วโปรแกรมจะประมวลผล คำา


                                                                                                                               สั่ง1 ก่อนที่จะประมวลผล คำาสั่ง3


                Enter integer value: 9                                                                                           ถ้า เงื่อนไขทางเลือก1 มีค่า จริง ขณะที่ เงื่อนไขทางเลือก2 มีค่าเท็จ แล้วโปรแกรมจะ

                Too low.                                                                                                       ประมวลผล คำาสั่ง2 ก่อนที่จะประมวลผล คำาสั่ง3

                                                                                                                                 และถ้า เงื่อนไขทางเลือก1 มีค่า เท็จ แล้วโปรแกรมจะประมวลผล คำาสั่ง3 เพียงคำาสั่งเดียว


         ผลลัพธ์ของการรันครั้งที่ 3 คือ                                                                                        เท่านั้น
                                                                                                                                 นั่นคือ ในคำาสั่ง if – else ( หรือคำาสั่ง if – else เชิงซ้อน ) else จะถูกจับคู่กับ if ก่อน


                                                                                                                               หน้าที่อยู่ใกล้ที่สุดเสมอ ซึ่งในที่นี้คือ if ( เงื่อนไขทางเลือก2 )
                 Enter integer value: 25
                                                                                                                                  ดังนั้น ในกรณีที่ต้องการให้ คำาสั่ง2 ถูกประมวลผล เงื่อนไขทางเลือก1 มีค่า เท็จ ก่อนที่
                 Correct!!
                                                                                                                               จะประมวลผล คำาสั่ง3 จะต้องเพิ่มเครื่องหมาย { และ } ตามรูปแบบด้านล่าง และในที่นี้ if (


                                                                                                                               เงื่อนไขทางเลือก2 ) จัดเป็นคำาสั่ง if ที่ซ้อนอยู่ในคำาสั่ง if – else ของ if ( เงื่อนไขทางเลือก1
         พิจารณาค่าของตัวแปร y สำาหรับโปรแกรมข้างต้นเป็น 3 กรณี ดังนี้                                                          )

         •  กรณีที่ 1 ถ้า y มีค่าเท่ากับ 100 จะได้ว่านิพจน์ y >TARGET มีค่าเป็น จริง แล้วฟังก์ชัน

            printf( ) ในบรรทัดที่ 13 จะถูกประมวลผล                                                                             if (เงื่อนไขทางเลือก1){


         •  กรณีที่ 2 ถ้า y มีค่าเท่ากับ 9 จะได้ว่านิพจน์ y >TARGET มีค่าเป็น เท็จ และนิพจน์ y <                                  if (เงื่อนไขทางเลือก2)

            TARGET มีค่าเป็น จริง แล้ว ฟังก์ชัน printf( ) ในบรรทัดที่ 15 จะถูกประมวลผล                                                   คำาสั่ง1;

         •  กรณีที่ 3 ถ้า y มีค่าเท่ากับ 25 จะได้ว่านิพจน์ y > TARGET และนิพจน์ y < TARGET มี                                  }


            ค่าเป็น เท็จ ทั้งคู่ ดังนั้น ฟังก์ชัน printf( ) ในบรรทัดที่ 17 จะถูกประมวลผล                                          else


                                                                                                                                         คำาสั่ง2;


                                                                                                                               คำาสั่ง3;
         พิจารณาคำาสั่ง if ในรูปแบบต่อไปนี้ ซึ่งมีคำาสั่ง if – else ซ้อนอยู่ด้านใน

         if (เงื่อนไขทางเลือก1)


            if (เงื่อนไขทางเลือก2)

                   คำาสั่ง1;

            else

                   คำาสั่ง2;


         คำาสั่ง3;
   62   63   64   65   66   67   68   69   70   71   72