Yengo News
ถูกใจอย่าลืม Like Fanpage
Listen 7 : ประโยคเงื่อนไข (Condition statement)
แสดงแล้ว 9684 ครั้ง /
สิงหาคม 18, 2009, 22:30

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
                                       

ประโยคเงื่อนไข (Condition statement)
   
             สำหรับประโยคเงื่อนไขนะครับ หลายคนอาจจะสงสัยว่า   จะต้องใช้เมื่อไหร่ และจะใช้อย่างไร ก็คงจะตอบได้ว่า   ประโยคเงื่อนไขนั้นเราจะใช้เมื่อเราต้องการจะตัดสินใจอะไรบางอย่างเช่นคำพูดที่เราพูดกันเรื่อยๆว่า   ถ้าเป็นอย่างนี้แล้วให้เป็นอย่างนั้น

       

ถ้า คำพูดของเขาเป็นความจริง แล้ว ฉันก็จะไปกับเขา ไม่เช่นนั้น ฉันก็จะไม่ไป

     

            จากประโยคที่ให้มานี้ เราจะพบว่าเงื่อนไขที่จะบอกว่า   ฉันจะไปกับเขา หรือไม่ไปนั้น มันขึ้นกับว่า คำพูดของเขา จริงหรือเท็จ นั่นเอง   ดังนัเน เงื่อนไขของข้อความนี้ก็คือ คำพูดของเขาเป็นความจริง   ถ้าลองเขียนเป็นรูปแบบภาษาซีที่เกี่ยวข้องกับการตัดสินใจ   ก็จะเขียนได้ว่า
       
if   (คำพูดของเขาเป็นความจริง){
                           ฉันก็จะไปกับเขา
         }else{
                           ฉันก็จะไม่ไป
         }
                                  เราลองมาดูอีกตัวอย่างให้ชัดๆไปเลย   เช่น ถ้าเรามีเงินมากกว่า 100 บาท เราจะซื้อของขวัญ A   แต่ถ้าน้อยกว่าเราก็จะซื้อของขวัญ B   เราสามารถเขียนให้อยู่ในรูปภาษาซีได้ดังนี้
         if   ( เงินที่มี > 100 ){
                           ซื้อของขวัญ A
         }else{
                           ซื้อของขวัญ B
         }

     


       ดังนั้นจะขอสรุปเกี่ยวกับโครงสร้าง   if-then-else
ได้ดังนี้นะครับ
       โครงสร้างที่ 1 if-then มีรูปแบบดังต่อไปนี้
       if( เงื่อนไขเป็นจริง ){
                    statement;
       }
                            นั่นคือถ้าเงื่อนไขเป็นจริง   ก็จะมาทำคำสั่งที่ statement; ถ้าเงื่อนไขนั้นไม่จริง ก็ไม่ต้องทำอะไร

     

โครงสร้างที่ 2 if-then-else มีรูปแบบดังต่อไปนี้
           if( เงื่อนไขเป็นจริง ){
                    statement1;
       }else{
                        statement2;
         }

                                    นั่นคือถ้าเงื่อนไขเป็นจริง   ก็จะมาทำคำสั่งที่ statement1; ถ้าเงื่อนไขนั้นไม่จริง ก็จะมาทำ   statement2;

     

โครงสร้างที่ 3   if-then-elseif- มีรูปแบบดังต่อไปนี้
           if( เงื่อนไขที่หนึ่งเป็นจริง){
                    statement1;
       }elseif( เงื่อนไขที่สองเป็นจริง ){
                        statement2;
         }else{
                        statement3;
         }

                            นั่นคือถ้าเงื่อนไขที่หนึ่งเป็นจริง   ก็จะมาทำคำสั่งที่ statement;   แต่ถ้าไม่จริงให้มาตรวจสอบเงื่อนไขที่สอง
       ถ้าเงื่อนไขที่สองเป็นจริงให้ทำคำสั่ง   statement2 แต่ถ้าไม่จริงให้หลุดมาทำ statement 3

     

ลองมาดูตัวอย่างกันสักหน่อย
       หากเราตรวจการดูค่าตัวแปร x ว่า ถ้า x   มีค่าน้อยกว่า 100 ให้พิมพ์คำว่า Less than 100 ถ้า x ไม่น้อยกว่า 100   ให้พิมพ์คำว่า Not less than 100   เราสามารถเขียนโปรแกรมได้ดังนี้
       #include
       main(){
                   int   x=50;
                   if (x<100){
                        printf("Less than 100   n");
                   }else{
                        printf("Not less than 100 n");
                   }
       }
       จากโค้ดข้างต้นนี้ เรากำหนดให้ x เป็นจำนวนเต็มมีค่าเท่ากับ 50 จากนั้นเรานำค่า   x มาตรวจสอบเงื่อนไขว่า ถ้า x<100 ซึ่งเป็นความจริงเพราะ 50<100   ดังนั้นเงื่อนไขนี้เป็นจริง จึงมาทำคำสั่ง printf("Less than 100n");   แต่หากเรากำหนดให้ x=200 แทนที่จะเป็น 50 เราก็จะพบว่า เงื่อนไข x<100   นั้นไม่เป็นจริง โปรแกรมจึงข้ามมาทำที่ขั้นตอนถัดไปคือ ไปที่ else และที่ else   นี้ไม่มีเงื่อนไขใดๆในการตรวจสอบจึง พิมพ์ข้อความ Not less than 100 ออกทางหน้าจอ
                     จากข้างต้นเราได้ข้อสังเกตว่า ถ้าเงื่อนไขแรกเป็นจริงแล้ว   โปรแกรมจะทำข้อความที่อยู่ในเครื่องหมายปีกกาที่ติดกับเงื่อนไขนั้น   และก็จะหลุดออกจาก โครงสร้าง if นั้นไปทันที เช่น

     

#include
       main(){
                   int   x=100;
                   if(x>50){
                        printf("More than   50n");
                   }elseif(x>80){
                        printf("More than   80n");
                   }else{
                        printf("More than 50 and   80n");
                   }
       }
       จากโปรแกรมนี้ผลที่ได้ปรากฎว่ามันจะพิมพ์เพียงข้อความเดียวคือ   More than 50 ทั้งนี้เนื่องจากเมื่อเรากำหนดเงื่อนไขว่า x=100   และพอโปรแกรมตรวจสอบในเงื่อนไขแรกคือ x>50 ซึ่งเป็นจริง   โปรแกรมจะมาทำข้อความภายในเครื่องหมาย {} ที่ติดกับเงื่อนไขเท่านั้น   และจากนั้นจะหลุดออกจากโครงสร้าง if   ไปเลย
                         แต่ถ้าลองมาดูโปรแกรมอีกโปรแกรมดังต่อไปนี้
       
#include
         main(){
                       int   x=100;
                       if(x<70){
                            printf("Less than   70n");
                       }elseif(x<110){
                            printf("Less than   110n");
                       }else{
                            printf("More than   110");
                       }
         }
         ซึ่งเมื่อรันโปรแกรมข้างต้น เรากำหนดค่า 100 ให้กับตัวแปร   x จากนั้นโปรแกรมจะทำการตรวจสอบในเงื่อนไขแรกตามลำดับ พบว่า x<70 นั้นไม่จริง   โปรแกรมจึงเข้ามาตรวจที่เงื่อนไขที่สองคือ x<110   ปรากฎว่าเงื่อนไขนี้เป็นจริงนั้นคือ 100<110 ทำให้โปรแกรมมาทำ statement   ที่อยู่ในเครื่องหมายปีกกากับเงื่อนไขที่มันเป็นจริง นั่นคือ โปรแกรมจะพิมพ์คำว่า   Less than 110 จากนั้นโปรแกรมก็จะหลุดออกจาก โครงสร้าง if   ทันที
                             อีกตัวอย่างที่น่าติดตามก็คือ   การตรวจสอบว่าค่าที่กำหนดให้มีค่าอยู่ระหว่างค่าที่เรากำหนดหรือไม่ เช่น   การตรวจสอบว่า x ที่เรากำหนดนั้นมีค่าอยู่ระหว่าง 50 ถึง 100 หรือไม่   การเขียนเงื่อนไขในการตรวจสอบสามารถทำได้ดังนี้
         #include
         main(){
                       int   x=70;
                       if( x>50 && x<100   ){
                            printf("TRUEn");
                       }else{
                            printf("FALSEn");
                       }
         }
         จากโปรแกรมนี้เรากำหนดค่า x=70 จากที่เราทราบแล้วว่า ถ้าเงื่อนไขใน if   (..................) เป็นจริงเท่านั้นจึงจะทำคำสั่งที่อยู่ติดกับเงื่อนไขนั้น   ในที่นี้เราพบว่าเงื่อนไขเรามีอยู่สองเงื่อนไขนั้นคือ x>50 และ x<100   โดยเราทำการเชื่อมเงื่อนไขทั้งสองด้วย &&   (and) นั่นหมายความว่า เงื่อนไข x>50 ต้องจริง และ เงื่อนไข x<100 ก็ต้องจริง เท่านั้นจึงจะทำ statement   printf("TRUEn"); แต่ถ้าเราเชื่อมเงื่อนไขสองเงื่อนไขด้วย || (หรือ) นั่นหมายความว่าเมื่อมีสองเงื่อนไข   เงื่อนไขหนึ่งในสองเงื่อนไขนั้นเป็นจริง ประโยคเงื่อยไขนั้นก็จะเป็นจริง เช่น
         #include
         main(){
                       int x=100;
                       if(x>50 ||   x>150){
                            printf("TRUEn");
                       }else{
                            printf("FALSEn");
                       }

           }
           จากโปรแกรมนี้เรากำหนดค่า x=100 ให้กับตัวแปร x และเงื่อนไขในโครงสร้าง if มี   สองเงื่อนไขคือ x>50 หรือ x>150 นั่นหมายความว่า   ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงก็จะถือว่าเงื่อนไขทั้งหมดเป็นจริง ในโปรแกรมนี้   100>50 นั่นหมายความว่าเงื่อนไขแรกเป็นจริง แต่เงื่อนไขที่สองคือ 100>150   อันนี้ไม่จริง แต่เนื่องจากเราเชื่อมสองเงื่อนไขด้วยสัญลักษณ์ || (หรือ)   จึงทำให้เงื่อนไขทั้งหมดเป็นจริง โปรแกรมนี้จึงพิมพ์คำว่า TRUE

     

ตัวอย่างสุดท้าย ปิดท้ายโครงสร้าง if นี้คือโปรแกรมตัดเกรด   โปรแกรมยอดนิยมในการเขียนโครงสร้าง if นั่นคือ   หากเรากำหนดกฎเกณฑ์ในการตัดเกรดดังนี้คือ

                                                                                                                                                                                                                                                                                                                                                       
คะแนน
เกรด
80-100
A
70-79
B
60-69
C
50-59
D
น้อยกว่า   50
F
     

     


     

     

 

     

นั่นหมายความว่าถ้าคะแนนของเราตกลงในช่วงคะแนนใด เราก็จะได้เกรดนั้น   หากเรากำหนดให้ตัวแปร x เป็นคะแนนที่เราได้   โปรแกรมจะสามารถเขียนได้ดังนี้

     

#include
       main(){
                  int x=74;
                     if(x>=80   && x<=100){
                         printf("Grade is   An");
                    }elseif(x>=70 && x<=79){
                         printf("Grade   is Bn");
                        }elseif(x>=60 &&   x<=69){
                             printf("Grade is Cn");
                        }elseif(x>=50   && x<=59){
                             printf("Grade is   Dn");
                        }else{
                             printf("Grade is Fn");
                        }
         }

           
           จากโปรแกรมข้างต้นนั้นเรากำหนดค่า 74ให้กับตัวแปร x   สมมติเป็นคะแนนที่เราได้   จากนั้นโปรแกรมจะทำการตรวจสอบเงื่อนไขทีละเงื่อนไขจากบนลงล่างนั่นคือ x >=80   && x<=100 หมายความว่า x มีค่าตั้งแต่ 80 ถึง 100 จริงหรือไม่   ซึ่งปรากฎว่าไม่จริง จึงมาตรวจสอบเงื่อนไขที่สองคือ x >= 70 && x<=79   หมายความว่า x มีค่าตั้งแต่ 70 ถึง 79 จริงหรือไม่ ปรากฎว่าจริง เพราะ 74>=70   และ 74<=79 จริงทั้งสองเงื่อนไขทำให้เงื่อนไขนี้เป็นจริง   ดังนั้นโปรแกรมจึงพิมพ์ค่า Grade is B   ออกมาทางหน้าจอนั่นเอง
                              จากโปรแกรมนี้เราสังเกตได้ว่าหากเราพิมพ์ค่าอื่นๆที่นอกเหนือจาก   50 ถึง 100 โปรแกรมจะให้เกรด F ในทันที นั่นหมายความว่าหากเราพิมพ์คะแนนเป็น 101   ก็จะไม่ได้เกรด A แต่จะเป็นเกรด F แทนนั่นเองครับ
         

 
 

 

 
 

ขอขอบคุณหลายๆท่านที่ได้กรุณาติดตามเนื้อหาภาษาซีเบื้องต้นเหล่านี้   และได้เขียน E-mail ไปถามผมมากมาย   และต้องขออภัยอีกหลายๆท่านที่ผมไม่ได้ตอบกลับบ้างหรือตอบกลับช้าบ้าง
     ทั้งนี้เนื่องจากกระผมมีภาระกิจที่จะต้องกระทำเป็นงานประจำอยู่มากมาย   จึงอาจจะทำให้ไม่ได้ตอบหรือตอบช้าบ้าง ก็ขออย่าได้ว่ากล่าวกันนะครับ   ส่วนหลายคนที่จะให้ช่วยทำโปรเจคให้ก็ต้องขออภัยด้วยครับ เพราะจากที่กล่าวข้างต้นคือ   ไม่มีเวลาจริงๆครับ แต่ก็จะช่วยแนะนำได้หากมีปัญหานะครับ   แต่ยังไงก็ยังดีใจที่หลายๆท่านให้คำชมมาซึ่งเป็นกำลังใจมหาศาลในการทำงานต่อไปครับ   ขอบคุณครับ

« แก้ไขครั้งสุดท้าย: สิงหาคม 18, 2009, 22:34 โดย admin »

 

ด้วยฟังค์ชั่น ตอบด่วน คุณสามารถใช้โค๊ดและ เครื่องหมายแสดงอารมณ์ได้ เหมือนการตั้งกระทู้ธรรมดา แต่สามารถทำได้สะดวกกว่า

ระวัง: หัวข้อนี้ไม่มีการอัพเดทมานานถึง 120 วัน

แจ้งเตือน: โพสของคุณจะไม่แสดงจนกว่าผู้ดูแลจะอนุมัติ.
ชื่อ: อีเมล์: