Translate

วันพุธที่ 21 พฤษภาคม พ.ศ. 2557

บทที่4 เงื่อนไข(if-else)

เงื่อนไข หรือ if-else

          เงื่อนไข(if-else)ในภาษาC++ นั้ัน ใช้ตรวจสอบค่าของตัวแปรก่อนแล้วจึงไปในส่วนอื่นๆของโปรแกรมต่อไปครับ จากบทที่3 จะเห็นว่ามีการตรวจสอบเงื่อนไข แล้วจึงทำตามผลที่เกิดขึ้น ไม่ว่าจะผ่านเงื่อนไข หรือ ไม่ผ่านเงื่อนไงก็ตาม เพื่อสะดวกต่อการเขียนโปรแกรมครับ ในส่วนนี้ผมคิดว่าสำคัญครับ เพราะได้ใช้บ่อยมาก เรามาเริ่มดูรูปแบบการใช้งานกันก่อนครับ


รูปแบบการใช้งาน

1.    if( เงื่อนไขที่ต้องการ )
      {
                สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง
      }
      else
      {
                สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นเท็จ
      }

รูปแบบที่1จะง่ายต่อการเข้าใจที่สุดครับ หากผลของเงื่อนไขเป็นจริง โปรแกรมจะเข้าไปในส่วนของ
สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง } ครับ แต่ถ้าผลของเงื่อนไขเป็นเท็จ โปรแกรมจะเข้าไปในส่วนของ{ สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นเท็จ } ครับ  ในการกำหนดเงื่อนไขนั้นจะใช้ตัวดำเนินการ( บทที่2 ) ทางตรรกะเป็นตัวเปรียบเทียบ ตัวอย่างเช่น if( i ==1 ) คือ ถ้า i มีค่าเท่ากับ 1 เป็นเงื่อนไขในการเปรียบเทียบ

ตัวอย่างของรูปแบบที่1
#include <stdio.h>
main()
{
       int i=1;
       if( i==1)
       {
             printf("Hello World!");
       }
      else
      {
             printf("Byebye");
      }
getch();
}

อธิบายโปรแกรม
          จากโค้ดของโปรแกรมจะเห็นว่า ให้ i มีค่าเท่ากับ1  เงื่อนไขคือถ้า i เท่ากับ 1 ผลจะเป็นจริง  เมื่อตรวจสอบค่าของตัวแปร i จะพบว่า ผลของเงื่อนไขเป็นจริง โปรแกรมจะแสดงผลHello World!
----------------------------------------------------------------


2.    if( เงื่อนไขที่ต้องการ )
      {
                สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง
      }
      else if
      {
                สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง
      }
      else
      {
                สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นเท็จ
      }

รูปแบบที่2 ยากขึ้นมาหน่อยนะครับ เริ่มด้วย if และจบด้วย else เหมือนรูปแบบแรกครับ แต่ที่เพิ่มเข้ามาคือ else if ครับ มันคืออะไร อย่าเพิ่งงงครับ else if คือเงื่อนไงเหมือนกับ if ครับ แต่จะทำงานเป็นเงื่อนไขที่อยู่หลังจาก if ครับ มาดูตัวอย่างเพื่อเพิ่มความเข้าใจกันครับ

ตัวอย่างของรูปแบบที่1
#include <stdio.h>
main()
{
       int i;
       scanf("%d",&i);
       if( i==1)
       {
             printf("Equal 1");
       }
      else if(i>1)
      {
             printf("More than 1");
      }
      else
      {
             printf("Less than 1");
      }
       getch();
}
อธิบายโปรแกรม
          จากโค้ดของโปรแกรมจะเห็นว่า ให้รับค่าตัวแปร i เงื่อนไขคือถ้า i เท่ากับ 1 เมื่อตรวจสอบค่าของตัวแปร i แล้วพบว่า ผลของเงื่อนไขเป็นจริง โปรแกรมจะแสดงผลEqual 1 หากผลเป็นเท็จ โปรแกรมจะไปในส่วนของบรรทัดถัดไปคือ else if ครับ เงื่อนไขมีอยู่ว่า ถ้า i มากกว่า 1  เมื่อตรวจสอบค่าของตัวแปร i แล้วพบว่า ผลของเงื่อนไขเป็นจริง โปรแกรมจะแสดงผลMore than 1 หากผลเป็นเท็จ โปรแกรมก็จะไปบรรทัดต่อไปคือ else เพื่อแสดงผล Less than 1 ครับ ไม่ยากเลยใช่มั้ยครับ
----------------------------------------------------------------


ตัวดำเนินการที่ใช้กับเงื่อนไข


  1. ==     เท่ากับ
  2. !=     ไม่เท่ากับ
  3. >       มากกว่า
  4. <       น้อยกว่า
  5. >=     มากกว่าเท่ากับ
  6. <=     น้อยกว่าเท่ากับ

ตัวดำเนินการเชื่อมเงื่อนไข

  1. ||        หรือ(หากเป็นจริง1กรณีก็จะทำตามเงื่อนไข)
  2. &&     และ(ต้องเป็นจริงทุกกรณี จึงจะทำตามเงื่อนไข)

----------------------------------------------------------------


แบบฝึกหัด (Exercise)

1. เขียนโปรแกรมที่ใช้รับค่าจากคีย์บอร์ด จำนวน1ครั้ง แล้วตรวจสอบเงื่อนไข ถ้าจำนวนนั้น มากกว่า 5 ให้แสดงคำว่า Yes นอกจากนั้นให้แสดงคำว่า No

2. เขียนโปรแกรมที่ใช้รับค่าจากคีย์บอร์ด จำนวน2ครั้ง แล้วตรวจสอบเงื่อนไข ถ้าจำนวนแรกเท่ากับ 5 และ จำนวนที่2 เท่ากับ 5 ให้แสดงคำว่า Equal 5  ถ้าจำนวนแรก มากกว่า 5 และ จำนวนที่สองมากกว่า5 ให้แสดงคำว่า Yes หากจำนวนแรกน้อยกว่า5  หรือ จำนวนที่สองน้อยกว่า5 ให้แสดงคำว่า No



----------------------------------------------------------------


เฉลย

1.ข้อแรกนะครับ
#include <stdio.h>
main()
{
  int i;
       scanf("%d",&i);
       if( i>5)
       {
             printf("Yes");
       }
      else
      {
             printf("No");
      }

       getch();

}

2.ข้อสองนะครับ
#include <stdio.h>
main()
{
  int i,j;
  printf("i = ");
       scanf("%d",&i);
  printf("j = ");
  scanf("%d",&j);
       if( i==5 && j==5)
       {
             printf("Equal 5");
       }
      else if( i>5 && j>5)
      {
             printf("Yes");
      }
      else if( i<5 || j<5)
      {
             printf("No");
      }

       getch();
}

แล้วเจอกันใหม่ในบทต่อไปครับ


4 ความคิดเห็น:

  1. ทำไมผมกดrun แล้วมันไม่ทำงานอะ มันขึ้นแดงที่ getch()

    ตอบลบ
  2. ข้อแรก
    #include
    #include
    int i;
    void main()
    {
    scanf("%d",&i);
    if (i>5)
    printf("Yes");
    else
    printf("No");
    return;
    }

    ตอบลบ
  3. Really nice blog, very infromative. You can refer more topics related to C language like C pointers and C Programs from here for future articles
    Thanks !

    ตอบลบ