More Related Content
More from Chommy Rainy Day
More from Chommy Rainy Day (17)
Unit10
- 2. = C programming By…iamch❀mmy =
บทที่ 10 If-else
การเรีย งลาดับ คาสั่ง ในโปรแกรมภาษาซีที่ผ่านมา มีลักษณะของการประมวลผลคาสั่ง
ถัด ไปตามลาดับ ตั้ง แต่คาสั่ง แรกในฟัง ก์ชั่น main() จนสิ้น สุดโปรแกรมการประมวลผลแบบนี้
เรี ย กว่ า มี โ ครงสร้ า งควบคุ ม แบบเรี ย งลาดั บ (sequential control structure)
ในบทนี ้จ ะกล่า วถึง การประมวลผลแบบ โครงสร้า งควบคุม แบบเลือ กท าค าสั ่ง
(selection control structure) ซึ่งมีคาสั่งที่ใช้ เช่น if , if else , switch case และที่จะกล่าวถึง
ในบทนี้ คือ if และ if-else
ค าสั่ ง if
เป็ น ค าสั่ ง ที่ มี ก ารทดสอบเงื่ อ นไขก่ อ นที่ จ ะท างานตามค าสั่ ง ที่ ก าหนด
คาสั่งเขียนผังงาน และมีรูปแบบคาสั่ง ดังนี้
ผังงาน
เงื่อนไข
จริง
คาสั่งต่าง ๆ
เท็จ
รูปแบบของคาสั่งแบบเลือกทา กรณี if ในภาษาซี
คือ
if(ประโยคเงื่อนไข)
{
คาสั่ง;
คาสั่ง;
...
}
ออกจากคาสั่ง
หากประโยคเงื่อนไขหลัง if ให้ค่า เป็นจริง จะเข้าไปทาคาสั่งทั้งหมดในวงเล็บปีกกา
หากในคาสั่ง if มีเพียงคาสั่งเดียว ไม่จาเป็นต้องมีวงเล็บปีกกาก็ได้
บทที่ 10 If-else
หน้า 2
- 3. = C programming By…iamch❀mmy =
นิพจน์ หมายถึง การนาค่าคงที่หรือ ตัวแปร และตัวดาเนินการ
มาประกอบกัน เช่น 2 + x * 5 หรือ (a>b)&&(c<=b) เป็นต้น
ค่าคงที่ หมายถึงค่าที่มีการไม่เปลี่ยนแปลง มี 3 ประเภท ได้แก่
ค่าคงที่ที่เป็นตัวเลข, อักขระ (ตัวอักษร 1 ตัว) และข้อความ
ประโยคเงื่อนไข คือ นิพจน์ที่จะให้ค่าได้เพียง 2 ค่าเท่านั้นคือ จริงหรือเท็จ
เช่น x == 4 จะให้ค่า 0 หรือ 1 เป็นต้น
ต่อไปดูวิธีการเขียน if กัน
โค้ด
int x = 5;
if(x + 3 > 7 || (x <= 5 || x % 3 == 0) &&x < 1)
{
printf("That's true!n");
}
ผลลัพธ์คือ
บทที่ 10 If-else
That's true!
หน้า 3
- 4. = C programming By…iamch❀mmy =
หากเราเปลี่ยนประโยคเปรียบเทียบเป็นค่าของประโยค (0 หรือ 1) จะได้ดังนี้
โจทย์ if(x + 3 > 7 || (x <= 5 || x % 3 == 0) &&x < 1)
if(1 || (1 || 0) &&0)
if(1 || 1 &&0) โดยปกติแล้วตัวดาเนินการนั้น จะทาจากซ้ายไปขวา แต่จะให้
ความสาคัญกับ && มากกว่า ||
if(1 || 0)
if(1)
สุดท้ายได้ค่าเป็น 1 (จริง) จึงเข้าไปทาคาสั่งข้างในวงเล็บปีกกา
นั่นคือแสดงข้อความว่า That's true!
หากเงื่อนไขเป็นจริง จะทาคาสั่งที่อยู่ใน { } หลัง if
หากใน { } มีหลายคาสั่งก็ทาตามลาดับไป
ตัวอย่างที่ 1 การเขียนคาสั่งแบบเลือกทาคาสั่ง (if)
...นักเรียนคิดว่าโปรแกรมนี้จะพิมพ์อะไรออกมาทางหน้าจอหรือไม่..
บทที่ 10 If-else
หน้า 4
- 5. = C programming By…iamch❀mmy =
หากเราเปลี่ยนประโยคเปรียบเทียบเป็นค่าของประโยค (0 หรือ 1) จะได้ดังนี้
โจทย์ if(x + 3 > 7 || (x <= 5 ||x % 3 == 0)&&x < 1)
if((1 || (1 || 0)) &&0)
if((1 || 1) &&0)
if(1 &&0)
if(0) สุดท้ายได้ค่าเป็น 0 (เท็จ) จึงไม่เข้าไปทาคาสั่งข้างในเครื่องหมายปีกกา
นั่นคือไม่มีการแสดงข้อความใด ๆ ออกมาทางหน้าจอ
จากตัวอย่างนี้
หากเราต้องการเขียนคาว่า That's not true! ออกมาทางหน้าจอ
ภาษาซีมีรูปแบบการเขียนอย่างไร ?
คาสั่ง if-else
เป็นคาสั่งที่มีการทดสอบเงื่อนไขแบบ 2 ทางเลือก ถ้าเงื่อนไขเป็นจริง ให้ทาตามคาสั่งชุด(A)
ที่อยู่ใน if ถ้าเงื่อนไขเป็นเท็จ ให้ทาตามคาสั่งชุดใน else (ชุดB) การทางานของคาสั่ง if else เขียน
เป็นผังงาน และมีรูปแบบคาสั่ง ดังนี้
ผังงาน
เงื่อนไข
จริง
คาสั่งชุด (A)
ออกจากคาสั่ง
บทที่ 10 If-else
เท็จ
คาสั่งชุด (B)
รูปแบบของคาสั่งแบบเลือกทา
กรณี if-else ในภาษาซี คือ
if(ประโยคเงื่อนไข)
{
คาสั่ง;
...
}
else
{
คาสั่ง;
...
}
หน้า 5
- 6. = C programming By…iamch❀mmy =
ตัวอย่างที่ 2 การเขียนคาสั่งแบบเลือกทาคาสั่ง (if-else)
นั่นคือ เพิ่มคาว่า else เข้าไป เมื่อเงื่อนไขไม่เป็นจริง (เป็นเท็จ) ก็จะทาคาสั่งที่ตามหลัง else
จากตัวอย่างนี้ เงื่อนไขในบรรทัดที่ 6 เป็นเท็จ จึงไม่ทาคาสั่งในบรรทัดที่ 8 (หลัง if) แต่จะไป
ทาคาสั่งบรรทัดที่ 11 หลัง else สรุปได้ว่า
หากเงื่อนไขเป็นจริง จะทาคาสั่งที่อยู่ใน { } หลัง if
หากเป็นเท็จ ไม่ทาคาสั่งใน { } หลัง if แต่ถ้าจะให้ทาสิ่งใดเพิ่มเติม
ให้เพิ่มคาว่า else แล้วใส่สิ่งที่ต้องการให้ทาใน { } หลัง else นั้น
เพือน ๆ ลองนาโค้ดโปรแกรมในตัวอย่าง
่
ไปใช้ในโปรแกรม Dev-C++ ดูนะ
เมือเข้าใจแล้วก็เข้าไปทาแบบฝึกหัดเลย
่
บทที่ 10 If-else
หน้า 6
- 7. = C programming By…iamch❀mmy =
คาศัพท์ภาษาอังกฤษน่ารู้ประจาบทที่ 10
ที่
คาศัพท์
คาอ่าน
ความหมายที่เกี่ยวข้องกับภาษาซี
1
2
3
4
control
else
If
sequential
คันโทรล
เอลซ
อิฟ
ซิเควนเชิล
ควบคุม
อื่น, อื่น ๆ อีก
ถ้า..
มีลาดับ
5
structure
สทริคเชอะ
โครงสร้าง
++ จบบทที่ 10 ++
บทที่ 10 If-else
หน้า 7