Download - งานทำ Blog บทที่ 6
ควบคุมทิศทางการท างานของโปรแกรม
(CONTROL STATEMENT)
ควบคุมทิศทางการท างานของโปรแกรม
1 ค าสั่งตัดสินใจ (Decision Control Statement
2
การควบคุมทิศทางการท างานของโปรแกรมในภาษา C
สามารถแบ่งออกได้เป็น 2 รูปแบบคือ
ค าสั่งวนซ้ า (Repetition Control Statement)
ค าส่ังตัดสินใจ (Decision Control Statement
ค าส่ังตัดสินใจแบบเลือกท าหรือไม่ท าด้วยค าส่ัง if
ค าสั่งตัดสินใจแบบสองทางเลอืกด้วย if...else
ค าสั่งตัดสินใจแบบหลายทางเลือกด้วยค าส่ัง if...else if
ค าสั่ง switch-case
ค าสั่งตัดสินใจ แบ่งออกได้ดังนี้
ค าสั่งตัดสินใจแบบเลือกท าหรือไม่ท าดว้ยค าสัง่ if
ค าสั่ง if เป็นค าสั่งที่ก าหนดให้โปรแกรมตัดสินใจท าหรือไม่ท า
สิ่งใดสิ่งหนึ่ง โดยตรวจสอบเงื่อนไขที่ก าหนดว่าเป็นจริงหรือเท็จ ถ้า
เงื่อนไขที่ก าหนดให้เป็นจริง (true) โปรแกรมจะท างานที่ชุดค าสั่งที่
อยู่ภายใต้ค าสั่ง if แต่ถ้าเงื่อนไขที่ก าหนดให้เป็นเท็จ (false)
โปรแกรมจะข้ามไปท างานที่ค าส่ังต่อไปทันที
มีรูปแบบค าส่ังดังนี้
if (condition)
{
statements;
}
ค าสั่งตัดสินใจแบบเลือกท าหรือไม่ท าดว้ยค าสัง่ if (ต่อ)
โดยที ่ condition เป็นเงื่อนไขที่ใช้ก าหนดการตดสินใจของโปรแกรม
statement เป็นชุดค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นจริง
จากรูปแบบค าสั่ง if เราจะเขียนแผนผังการท างาน (flowchart) ได้ดังนี้
ตรวจสอบเงื่อนไข
จริง
เท็จ ชุดค าสั่ง
ค าสั่งตัดสินใจแบบสองทางเลือกด้วย if…else
ค าส่ัง if...else เป็นค าส่ังที่เราใช้ก าหนดให้โปรแกรม
ตัดสินใจเลือกท าค าสั่งใดอย่างหนึ่งจาก 2 ทางเลือก โดย
ตรวจสอบเงื่อนไขที่ก าหนดว่าเป็นจริงหรือเท็จ ถ้าเงื่อนไข
ที่ก าหนดให้ เป็นจริง (true) โปรแกรมจะท างานที่
ชุดค าส่ังที่อยู่ภายใต้ค าส่ัง if แต่ถ้าเงื่อนไขที่ก าหนดให้
เป็นเท็จ (false) โปรแกรมจะท างานที่ชุดค าส่ังที่อยู่
ภายใต้ค าส่ง else
การเลือกท างานตามเงื่อนไข (Decision)
ซึ่งค าสั่ง if...else ในภาษา C มีรูปแบบค าส่ังดังนี้
if(condition)
{
statements1;
}
else
{
statements2;
}
•โดยที ่ condition เป็นเงื่อนไขที่ใช้ก าหนดการตัดสินใจของโปรแกรม
statement1 เป็นชดุค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นจริง
statement2 เป็นชดุค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นเท็จ
จากรูปแบบค าสั่ง if...else เราเขียนแผนผังการท างาน (flowchart) ได้ดังนี้
ชุดค าสั่ง (true)
ตรวจสอบเงื่อนไข
ชุดค าสั่ง (false)
จริง เท็จ
ค าส่ังตัดสินใจแบบหลายทางเลือกด้วยค าส่ัง if…else if
ค าสั่ง if...else if เป็นค าสั่งที่เราใช้ก าหนดให้โปรแกรม
ตัดสินใจเลือกทางใดทางหนึ่งจากทางเลือกที่มีมากกว่า 2 ทาง และ
แต่ละทางเลือกจะมีการก าหนดเงื่อนไขของแต่ละทางเลือกไว้ด้วย
โดยโปรแกรมจะตรวจสอบเงื่อนไขของแต่ละทางเลือก หากพบว่า
ทางเลือกไหนมีเงื่อนไขเป็นจริง (true) ก็จะท างานที่ชุดค าสั่ง
ภายในทางเลือกนั้น โดยไม่พิจารณาทางเลือกอื่นที่ยังไม่ได้ท าการ
ตรวจสอบอีก ในกรณีที่เงื่อนไขเป็นเท็จ (false) และในกรณีที่
เงื่อนไขท้ังหมดเป็นเท็จ ให้โปรแกรมท างานที่ชุดค าสั่งภายใต้ค าสั่ง
else
if(condition_1)
{
statements_1;
}
else if(condition_2)
{
statements_2;
}
else if(condition_n)
{
statements_n;
}
else
{
statements;
}
ซึ่งค าสั่ง if...else if ในภาษา C มีรูปแบบค าส่ังดังนี้
โดยที่ condition_n เป็นชุดเงื่อนไขที่ n ที่ใช้ก าหนดการตัดสินใจของ
โปรแกรม
statements_n เป็นชุดค าส่ังที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดที่ n
เป็นจริง
statements เป็นชุดค าส่ังที่ต้องท างานเมื่อเงื่อนไขที่ก าหนด
ท้ังหมดเป็นเท็จ
ตั้งใจ
เรียน
กัน
หน่อย
จากรูปแบบค าสั่ง if...else if เราสามารถเขียนผังงานการท างาน
(flowchart) ได้ดังนี้
เงื่อนไข 1
ชุดค าสั่ง
จริง
เท็จ เงื่อนไข 2
เท็จ
ชุดค าสั่ง ชุดค าสั่ง
จริง
ค าส่ัง switch - case
ค าส่ัง switch – case เป็นค าสั่งตัดสินใจที่มีการ
ท างานเหมือนกับค าส่ัง if...else if คือเลือกทางใดทาง
หนึ่งจากทางเลือกที่มีมากว่า 2 ทาง ในแต่ละทางเลือกจะ
มีการก าหนดเงื่อนไขของแต่ละทางเลือก โดยตรวจสอบ
เงื่อนไขแต่ละทางเลือก หากพบว่าทางเลือกไหนเป็นจริง
(true) ก็จะท าชุดค าส่ังภายในทางเลือกนั้น โดยไม่
พิจารณาทางเลือกอื่นที่ยังไม่ได้ท าการตรวจสอบ
Implicit Type Conversion
ค าสั่ง switch case ในภาษา C มีรูปแบบการท างานดงันี้
switch(condition)
{
case constant_1 :
statements_1;
break;
case constant_2 :
statements_2;
break;
case constant_n :
statements_n;
break;
default :
statements;
}
โดยที ่condition เป็นตัวแปรหรือนิพจน์ที่เป็นเงื่อนไขของค าสั่ง
constant_n เป็นค่าคงที่ที่ใช้ตรวจสอบกบัตัวแปรหรือนิพจน์เงื่อนไข
statements_n เป็นชุดค าสั่งที่ต้องท างานเมื่อตวัแปรหรือนิพจน์ที่ n เป็นจริง
statements เป็นชุดค าสั่งท่ีต้องท างานเมื่อตวัแปรหรือนิพจน์ทั้งหมดเป็นเท็จ
จากรูปแบบค าสั่ง switch – case เราสามารถเขียนแผนภูมิการท างาน
(flowchart) ได้ดังนี้
เงื่อนไข 1
ชุดค าสั่ง
จริง
เท็จ เท็จ
ชุดค าสั่ง ชุดค าสั่ง
จริง
เงื่อนไข 2
ในการท างานของค าสั่งโปรแกรมจะตรวจสอบค่า
จากตัวแปรที่อยู่ภายในค าส่ัง switch ซึ่งอาจเป็น
สมการทางคณิตศาสตร์หรือการค านวณทางตรรกะ
ใด ๆ ก็ได้ ว่าตรงกับ case ใดของค าสั่ง switch
โปรแกรมก็จะเข้าท างานในชุดค าสั่งเฉพาะที่อยู่ใน
case นั้น ๆ เมื่อท างานเสร็จจะพบค าสั่ง break
เพื่อให้โปรแกรมข้ามไปท างานนอกค าสั่ง switch –
case ทันที แต่ในกรณีที่ไม่มีค่าใดใน case ตรงกับ
เงื่อนไข โปรแกรมก็จะเข้ามาท างานที่ชุดค าสั่ง
ภายในค าสั่ง default ทันที
ควบคุมการท างานของโปรแกรมดว้ยค าสั่งวนลูป
(Repetition Control Statement)
ค าสั่งวนลูป เป็นค าส่ังที่ใช้ควบคุมการท างานของโปรแกรมแบวนซ้ า ๆ
การท างานเดิม ๆ ตามเงื่อนไขที่ก าหนด เช่น การวนซ้ าการท างานเดิมเป็น
จ านวน 10 รอบ ท างานซ้ า ๆ จนกว่าเงื่อนไขเป็นเท็จ เป็นต้น
• วนลูปการท างานด้วยจ านวนรอบที่แน่นอนด้วยค าส่ัง for
• วนลูปการท างานเมื่อเงื่อนไขเป็นจริงด้วยค าส่ัง while
• วนลูปการท างานอย่างน้อย 1 ครั้ง ด้วยค าส่ัง do...while
ค าสั่ง for เป็นค าสั่งวนซ้ าการท างานเดิม ๆ ด้วย
จ านวนรอบที่แน่นอน โดยที่โปรแกรมจะตรวจสอบ
เงื่อนไขก่อนการท างานทุกรอบ ถ้าเงื่อนไขเป็นจริงให้
ท างานที่ชุดค าส่ังภายในลูปต่อไป เมื่อท างานเสร็จจะ
เพิ่ มหรือลดค่า ตัวแปรที่ ใช้ก าหนดเงื่ อนไข และ
ตรวจสอบเงื่อนไขใหม่อีกคร้ัง ถ้าเงื่อนไขเป็นเท็จให้
โปรแกรมออกจากลูปการท างานไปท างานที่ค าส่ัง
ถัดไปทันท ี
วนลปูการท างานด้วยจ านวนรอบทีแ่นน่อนด้วยค าสั่ง FOR
วนลูปการท างานด้วยจ านวนรอบที่แน่นอนด้วยค าสั่ง for ค าส่ัง for ในภาษา C มีรูปแบบค าส่ังดังนี้
for(initinal; condition; change)
{
statements;
}
โดยที่ initial เป็นส่วนก าหนดค่าเริ่มต้นของตัวแปรที่ใช้ก าหนดเงื่อนไข
condition เป็นส่วนก าหนดเงื่อนไขการวนลูป
change เป็นส่วนการเปลี่ยนแปลงของตัวแปรในแต่ละรอบ
statements เป็นชุดค าส่ังที่ต้องท าเมื่อเงื่อนไขเป็นจริง
จากรูปแบบค าสั่ง for เราสามารถเขียนผังงานการท างาน
(Flowchart) ได้ดังนี้
ตรวจสอบเงื่อนไข
ก าหนดค่าเริ่มต้น
ของตัวแปร
เท็จ
ชุดค าสั่ง
จริง
เปลี่ยนค่าตวัแปร
วนลูปการท างานเมื่อเงื่อนไขเป็นจริงด้วยค าส่ัง while
ค าสั่ง while เป็นค าสั่งวนซ้ าการท างานเดิม ๆ ของโปรแกรมโดย
โปรแกรมตรวจสอบเงื่อนไขก่อนการท างานทุกครั้ง ถ้าเงื่อนไขที่ก าหนด
เป็นจริง โปรแกรมจะท างานที่ชุดค าสั่งภายในลูป เมื่อโปรแกรมท างาน
เสร็จจะตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขที่ก าหนดเป็นเท็จ
โปรแกรมจะออกจากลูปการท างานไปท างานที่ค าส่ังถัดไปทันที
ซึ่งค าส่ัง while ในภาษา C มีรูปแบบค าส่ังดังนี้
while(condition)
{
statements;
}
โดยที่ condition เป็นเงื่อนไขที่ก าหนดให้ตรวจสอบก่อนท างานภายในลูปทุกครั้ง
statements เป็นชุดค าส่ังที่ต้องท าเมื่อเงื่อนไขเป็นจริง
ตรวจสอบเงื่อนไข
จริง
ชุดค าสั่ง
เท็จ
วนลูปการท างานอยา่งนอ้ย 1 ครั้ง ด้วยค าสัง่ do…while
ค าสั่ง d0...while เป็นค าสั่งวนซ้ าการท างาน
เดิม ๆ โดยโปรแกรมจะท างานชุดค าส่ัง
ภายในลูปก่อน 1 รอบ จึงตรวจสอบเงื่อนไข
ที่ก าหนด ถ้าเงื่อนไขที่ก าหนดเป็นจริงให้
กลับไปท างานชุดค าส่ังภายในลูปอีกคร้ัง
และตรวจสอบเงื่อนไขที่ก าหนดอีกคร้ัง ถ้า
เงื่อนไขที่ก าหนดเป็นเท็จ โปรแกรมจะออก
จากลูปการท างานไปท างานที่ค าส่ังถัดไป
ทันที
ซึ่งค าสั่ง do...while ในภาษา C มีรูปแบบค าส่ังดังนี้
do
{
statements;
}while (condition);
โดยที่ condition เป็นเงื่อนไขที่ก าหนดให้ตรวจสอบหลังท างานภายในลูป
ทุกครั้ง
statements เป็นชุดค าส่ังที่ท างานก่อนตรวจสอบเงื่อนไข
จากรูปแบบค าสั่ ง do...while สามารถเขียนแผนผังการท างาน
(Flowchart) ได้ดังนี้
ชุดค าสั่ง
ตรวจสอบเงื่อนไข
เท็จ
จริง
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER