Skip to content

Latest commit

 

History

History
94 lines (81 loc) · 3.06 KB

File metadata and controls

94 lines (81 loc) · 3.06 KB

การทำงานแบบมีเงื่อนไข (Conditional)

  • เหมือนกันทั้ง C และ C++

if

if (condition)
{
    // statements
}
  • โค้ดในปีกกา { } จะทำงานเมื่อเงื่อนไขเป็นจริงเท่านั้น
  • หากเงื่อนไขเป็นเท็จ จะข้ามไปยังโค้ดที่อยู่ถัดกับปีกกาเลย
  • หากไม่ใส่ปีกกา if จะมีผลกับบรรทัดถัดไปเท่านั้น (ควรใส่ปีกกาตลอด)

ตัวอย่าง

int a = 11;
if (a % 2 == 1)
    printf("a is odd.\n");
if (a % 3 == 0)
    printf("a is divisible by 3.\n");
if (a >= 10 && a < 100)
    printf("a is two digits long.\n");

else

if (condition)
{
    // statements
}
else
{
    // statements
}
  • โค้ดในปีกกาหลัง else จะทำงานเมื่อโค้ดในส่วน if ไม่ทำงานเท่านั้น
  • ถ้า if ทำงาน else จะถูกข้ามไป
  • ต้องใช้คู่กับ if ก่อนหน้า
  • หากไม่ใส่ปีกกา else จะมีผลกับบรรทัดถัดไปเท่านั้น (ควรใส่ปีกกาตลอด)
int n;
scanf("%d", &n);
if (n % 2 == 0)
    printf("%d is even.", n);
else
    printf("%d is odd.", n);

else if

if (condition) // 1
{
    // statements
}
else if (condition) // 2
{
    // statements
}
// ...
else
{
    // statements
}
  • ใช้สำหรับเงื่อนไขที่มีความซับซ้อน โดยโปรแกรมจะคิดตามลำดับ
  • หากเงื่อนไขส่วนที่ 1 เป็นจริง โค้ดส่วนที่ 1 จะทำงาน ส่วนที่ 2, 3, ... และ else จะไม่ทำงาน
  • แต่หากส่วนที่ 1 เป็นเท็จ โปรแกรมจะเช็คส่วนที่ 2 ต่อ ถ้าเป็นจริงส่วนที่ 2 จะทำงาน ข้ามส่วนอื่นไป
  • หากส่วนที่ 2 เป็นเท็จอีก ก็จะเช็คส่วนที่ 3, 4, ... หากไม่มีส่วนไหนทำงานเลย ส่วน else จะทำงาน
  • ไม่จำเป็นต้องมี else ก็ได้ หากไม่ต้องการทำอะไรทั้งสิ้น เมื่อส่วนที่ 1, 2, 3, ... เป็นเท็จทั้งหมด

ตัวอย่าง

int score;
scanf("%d", &score);
if (score >= 80)
    printf("A");
else if (score >= 70)
    printf("B");
else if (score >= 60)
    printf("C");
else if (score >= 50)
    printf("D");
else
    printf("F");