วันอังคารที่ 6 มกราคม พ.ศ. 2558

คำสั่ง if

1. คําสั่ง if

        คําสั่ง if เปนคําสั่งที่ใชในการเขียนแบบเงื่อนไข ตัวอยางของประโยคในลักษณะเงื่อนไขเปนตัวอยางที่สามารถพบเห็นไดในชีวิตประจําวัน เชน ถาวันนี้ฝนไมตก ฉันจะเดินไปโรงเรียน แตถาฝนตก ฉันจะขอใหคุณพอไปสงที่โรงเรียนหรือตัวอยางเชน ถาฉันสอบไดคะแนนดี คุณพอและคุณแมจะภูมิใจ
จะใหวาประโยคเงื่อนไขดังกลาวมีอยู 2 ลักษณะ คือ ถาเงื่อนไขเปนจริงเกิดเหตุการณหนึ่ง แตถาไมจริงจะเกิดอีกเหตุการณหนึ่ง กับประโยคในลักษณะที่ถาเงื่อนไขเปนจริงจึงจะเกิดเหตุการณขึ้นเทานั้น
1.1 คําสั่ง if-else
        คําสั่ง if ในรูปแบบแรกจะคํ าสั่งที่ตองทํ าทั้งในกรณีที่เงื่อนไขเปนจริงและเปนเท็จ โดยใช
นิพจนตรรกศาสตรมาเปนเครื่องมือชวยในการตรวจสอบเงื่อนไข มีรูปแบบคํ าสั่ง คือ
                   
                         if ( เงื่อนไข )
                         คํ าสั่งที่ 1;
                   else
                         คํ าสั่งที่ 2;

          ตัวอยางเชน หากรับขอมูลจากผูใชและตองการตรวจสอบวาเลขที่รับเขามามีคามากกวา 10
ใหพิมพขอความวา “Number XXXX is over than 10” แตถาไมใชใหพิมพขอความวา “Number
XXXX is not over than 10” จะเขียนเปนคําสั่งไดวา

                    scanf(“%d”, &number);
                    if (number > 10)
                        printf(“Number %d is over than 10”, number);
                   else
                        printf(“Number %d is not over than 10”, number);

          แตหากเงื่อนไขเปนจริงหรือเท็จแลวตองทํ าคํ าสั่งมากกวา 1 คํ าสั่ง จะตองใชเขียน if-else ใน
รูปแบบที่ใชเครื่อง { } ซึ่งแสดงขอบเขตของการทํ าเงื่อนไข ครอบคํ าสั่งที่ตองทํ าในแตละเงื่อนไข มีรูป
แบบดังนี้
                          if ( เงื่อนไข ) {
                              คํ าสั่งที่ 1;
                              คํ าสั่งที่ 2;
                               ….
                    } else {
                              คํ าสั่งที่ 3;
                              คํ าสั่งที่ 4;
                               …
                     }

           ตัวอยางเหมือนในตัวอยางกอนหนานี้ แตเพิ่มเงื่อนไขวา ถาเลขนั้นมีคามากกวา 10 ใหลด
เลขนั้นลง 5 แสดงไดดังตัวอยาง

                  scanf(“%d”, &number);
                  if (number > 10) {
                       printf(“Number %d is over than 10”, number);
                       number = number – 5;
               } else
                       printf(“Number %d is not over than 10”, number);

1.2 คําสั่ง if
           ในกรณีที่ประโยคเงื่อนไขมีการทํ างานเฉพาะเงื่อนไขที่เปนจริงเทานั้น โดยไมมีการทํ างานใด
ในเงื่อนไขที่เปนเท็จ ดังแสดงในรูปที่ 3.1 (ข) สามารถเขียนแทนดวยคํ าสั่ง if โดยไมตองใสคําสั่ง
else แสดงดังรูปแบบ
                 
                    if ( เงื่อนไข )
                        คํ าสั่งที่ 1;

           แตถาเงื่อนไขเปนจริงแลวมีการทํ าคํ าสั่งมากกวา 1 คํ าสั่งขึ้นไป ก็ใชรูปแบบของเครื่องหมาย
{ } ซึ่งใชในกรณีที่มีคํ าสั่งที่ตองทํ าในเงื่อนไขและการวนซํ้ ามากกวา 1 คํ าสั่ง เพื่อแสดงขอบเขตของ
การทํ างานนั้น
           ตัวอยางเชน ใหรับขอมูลจํ านวนเต็มจากผูใช หากขอมูลนั้นมีคามากกวา 60 หรือนอยกวา
20 ใหขึ้นขอความวา “Number XXXX is out of range” เขียนไดดังตัวอยาง
               
                   scanf(“%d”, &number);
                   if (number < 20 || number > 60)
                        printf(“Number %d is out of range”, number);

1.3 คําสั่ง if แบบซับซอน
           ในบางกรณีประโยคเงื่อนไขอาจจะมีความซับซอน มีการเปรียบเทียบเงื่อนไขเดียวกันกับหลายคา เชน ใหรับขอมูลชั้นปของนักศึกษาและใหพิมพขอความตรงกับชั้นป กํ าหนดวาชั้นปที่ 1 พิมพวา“Freshman” ชั้นปที่ 2 พิมพวา “Sophomore” ชั้นปที่ 3 พิมพวา “Junior” ชั้นปที่ 4 พิมพวา “Senior” ชั้นปอื่น ๆ พิมพวา “Super”
               
                 scanf(“%d”, &year);
                 if (year == 1)
                      printf(“Freshman”);
               else if (year == 2)
                      printf(“Sophomore”);
              else if (year == 3)
                      printf(“Junior”);
              else if (year == 4)
                     printf(“Senior”);
              else
                     printf(“Super”)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น