เงื่อนไข หรือ 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!
----------------------------------------------------------------
{
สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง
}
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กรณีก็จะทำตามเงื่อนไข)
- && และ(ต้องเป็นจริงทุกกรณี จึงจะทำตามเงื่อนไข)
----------------------------------------------------------------
แบบฝึกหัด (Exercise)
1. เขียนโปรแกรมที่ใช้รับค่าจากคีย์บอร์ด จำนวน1ครั้ง แล้วตรวจสอบเงื่อนไข ถ้าจำนวนนั้น มากกว่า 5 ให้แสดงคำว่า Yes นอกจากนั้นให้แสดงคำว่า No2. เขียนโปรแกรมที่ใช้รับค่าจากคีย์บอร์ด จำนวน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();
}
แล้วเจอกันใหม่ในบทต่อไปครับ
ทำไมผมกดrun แล้วมันไม่ทำงานอะ มันขึ้นแดงที่ getch()
ตอบลบลองใส่ #include ดูครับ
ลบข้อแรก
ตอบลบ#include
#include
int i;
void main()
{
scanf("%d",&i);
if (i>5)
printf("Yes");
else
printf("No");
return;
}
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 !