งานทำ blog บทที่ 6

26
ควบคมทิศทางการทางานของโปรแกรม (CONTROL STATEMENT)

Upload: -

Post on 25-Jun-2015

273 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: งานทำ Blog บทที่ 6

ควบคุมทิศทางการท างานของโปรแกรม

(CONTROL STATEMENT)

Page 2: งานทำ Blog บทที่ 6

ควบคุมทิศทางการท างานของโปรแกรม

1 ค าสั่งตัดสินใจ (Decision Control Statement

2

การควบคุมทิศทางการท างานของโปรแกรมในภาษา C

สามารถแบ่งออกได้เป็น 2 รูปแบบคือ

ค าสั่งวนซ้ า (Repetition Control Statement)

Page 3: งานทำ Blog บทที่ 6

ค าส่ังตัดสินใจ (Decision Control Statement

ค าส่ังตัดสินใจแบบเลือกท าหรือไม่ท าด้วยค าส่ัง if

ค าสั่งตัดสินใจแบบสองทางเลอืกด้วย if...else

ค าสั่งตัดสินใจแบบหลายทางเลือกด้วยค าส่ัง if...else if

ค าสั่ง switch-case

ค าสั่งตัดสินใจ แบ่งออกได้ดังนี้

Page 4: งานทำ Blog บทที่ 6

ค าสั่งตัดสินใจแบบเลือกท าหรือไม่ท าดว้ยค าสัง่ if

ค าสั่ง if เป็นค าสั่งที่ก าหนดให้โปรแกรมตัดสินใจท าหรือไม่ท า

สิ่งใดสิ่งหนึ่ง โดยตรวจสอบเงื่อนไขที่ก าหนดว่าเป็นจริงหรือเท็จ ถ้า

เงื่อนไขที่ก าหนดให้เป็นจริง (true) โปรแกรมจะท างานที่ชุดค าสั่งที่

อยู่ภายใต้ค าสั่ง if แต่ถ้าเงื่อนไขที่ก าหนดให้เป็นเท็จ (false)

โปรแกรมจะข้ามไปท างานที่ค าส่ังต่อไปทันที

มีรูปแบบค าส่ังดังนี้

if (condition)

{

statements;

}

Page 5: งานทำ Blog บทที่ 6

ค าสั่งตัดสินใจแบบเลือกท าหรือไม่ท าดว้ยค าสัง่ if (ต่อ)

โดยที ่ condition เป็นเงื่อนไขที่ใช้ก าหนดการตดสินใจของโปรแกรม

statement เป็นชุดค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นจริง

จากรูปแบบค าสั่ง if เราจะเขียนแผนผังการท างาน (flowchart) ได้ดังนี้

ตรวจสอบเงื่อนไข

จริง

เท็จ ชุดค าสั่ง

Page 6: งานทำ Blog บทที่ 6

ค าสั่งตัดสินใจแบบสองทางเลือกด้วย if…else

ค าส่ัง if...else เป็นค าส่ังที่เราใช้ก าหนดให้โปรแกรม

ตัดสินใจเลือกท าค าสั่งใดอย่างหนึ่งจาก 2 ทางเลือก โดย

ตรวจสอบเงื่อนไขที่ก าหนดว่าเป็นจริงหรือเท็จ ถ้าเงื่อนไข

ที่ก าหนดให้ เป็นจริง (true) โปรแกรมจะท างานที่

ชุดค าส่ังที่อยู่ภายใต้ค าส่ัง if แต่ถ้าเงื่อนไขที่ก าหนดให้

เป็นเท็จ (false) โปรแกรมจะท างานที่ชุดค าส่ังที่อยู่

ภายใต้ค าส่ง else

Page 7: งานทำ Blog บทที่ 6

การเลือกท างานตามเงื่อนไข (Decision)

ซึ่งค าสั่ง if...else ในภาษา C มีรูปแบบค าส่ังดังนี้

if(condition)

{

statements1;

}

else

{

statements2;

}

Page 8: งานทำ Blog บทที่ 6

•โดยที ่ condition เป็นเงื่อนไขที่ใช้ก าหนดการตัดสินใจของโปรแกรม

statement1 เป็นชดุค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นจริง

statement2 เป็นชดุค าสั่งที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดเป็นเท็จ

จากรูปแบบค าสั่ง if...else เราเขียนแผนผังการท างาน (flowchart) ได้ดังนี้

ชุดค าสั่ง (true)

ตรวจสอบเงื่อนไข

ชุดค าสั่ง (false)

จริง เท็จ

Page 9: งานทำ Blog บทที่ 6

ค าส่ังตัดสินใจแบบหลายทางเลือกด้วยค าส่ัง if…else if

ค าสั่ง if...else if เป็นค าสั่งที่เราใช้ก าหนดให้โปรแกรม

ตัดสินใจเลือกทางใดทางหนึ่งจากทางเลือกที่มีมากกว่า 2 ทาง และ

แต่ละทางเลือกจะมีการก าหนดเงื่อนไขของแต่ละทางเลือกไว้ด้วย

โดยโปรแกรมจะตรวจสอบเงื่อนไขของแต่ละทางเลือก หากพบว่า

ทางเลือกไหนมีเงื่อนไขเป็นจริง (true) ก็จะท างานที่ชุดค าสั่ง

ภายในทางเลือกนั้น โดยไม่พิจารณาทางเลือกอื่นที่ยังไม่ได้ท าการ

ตรวจสอบอีก ในกรณีที่เงื่อนไขเป็นเท็จ (false) และในกรณีที่

เงื่อนไขท้ังหมดเป็นเท็จ ให้โปรแกรมท างานที่ชุดค าสั่งภายใต้ค าสั่ง

else

Page 10: งานทำ Blog บทที่ 6

if(condition_1)

{

statements_1;

}

else if(condition_2)

{

statements_2;

}

else if(condition_n)

{

statements_n;

}

else

{

statements;

}

ซึ่งค าสั่ง if...else if ในภาษา C มีรูปแบบค าส่ังดังนี้

Page 11: งานทำ Blog บทที่ 6

โดยที่ condition_n เป็นชุดเงื่อนไขที่ n ที่ใช้ก าหนดการตัดสินใจของ

โปรแกรม

statements_n เป็นชุดค าส่ังที่ต้องท างานเมื่อเงื่อนไขที่ก าหนดที่ n

เป็นจริง

statements เป็นชุดค าส่ังที่ต้องท างานเมื่อเงื่อนไขที่ก าหนด

ท้ังหมดเป็นเท็จ

ตั้งใจ

เรียน

กัน

หน่อย

Page 12: งานทำ Blog บทที่ 6

จากรูปแบบค าสั่ง if...else if เราสามารถเขียนผังงานการท างาน

(flowchart) ได้ดังนี้

เงื่อนไข 1

ชุดค าสั่ง

จริง

เท็จ เงื่อนไข 2

เท็จ

ชุดค าสั่ง ชุดค าสั่ง

จริง

Page 13: งานทำ Blog บทที่ 6

ค าส่ัง switch - case

ค าส่ัง switch – case เป็นค าสั่งตัดสินใจที่มีการ

ท างานเหมือนกับค าส่ัง if...else if คือเลือกทางใดทาง

หนึ่งจากทางเลือกที่มีมากว่า 2 ทาง ในแต่ละทางเลือกจะ

มีการก าหนดเงื่อนไขของแต่ละทางเลือก โดยตรวจสอบ

เงื่อนไขแต่ละทางเลือก หากพบว่าทางเลือกไหนเป็นจริง

(true) ก็จะท าชุดค าส่ังภายในทางเลือกนั้น โดยไม่

พิจารณาทางเลือกอื่นที่ยังไม่ได้ท าการตรวจสอบ

Page 14: งานทำ Blog บทที่ 6

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;

}

Page 15: งานทำ Blog บทที่ 6

โดยที ่condition เป็นตัวแปรหรือนิพจน์ที่เป็นเงื่อนไขของค าสั่ง

constant_n เป็นค่าคงที่ที่ใช้ตรวจสอบกบัตัวแปรหรือนิพจน์เงื่อนไข

statements_n เป็นชุดค าสั่งที่ต้องท างานเมื่อตวัแปรหรือนิพจน์ที่ n เป็นจริง

statements เป็นชุดค าสั่งท่ีต้องท างานเมื่อตวัแปรหรือนิพจน์ทั้งหมดเป็นเท็จ

จากรูปแบบค าสั่ง switch – case เราสามารถเขียนแผนภูมิการท างาน

(flowchart) ได้ดังนี้

เงื่อนไข 1

ชุดค าสั่ง

จริง

เท็จ เท็จ

ชุดค าสั่ง ชุดค าสั่ง

จริง

เงื่อนไข 2

Page 16: งานทำ Blog บทที่ 6

ในการท างานของค าสั่งโปรแกรมจะตรวจสอบค่า

จากตัวแปรที่อยู่ภายในค าส่ัง switch ซึ่งอาจเป็น

สมการทางคณิตศาสตร์หรือการค านวณทางตรรกะ

ใด ๆ ก็ได้ ว่าตรงกับ case ใดของค าสั่ง switch

โปรแกรมก็จะเข้าท างานในชุดค าสั่งเฉพาะที่อยู่ใน

case นั้น ๆ เมื่อท างานเสร็จจะพบค าสั่ง break

เพื่อให้โปรแกรมข้ามไปท างานนอกค าสั่ง switch –

case ทันที แต่ในกรณีที่ไม่มีค่าใดใน case ตรงกับ

เงื่อนไข โปรแกรมก็จะเข้ามาท างานที่ชุดค าสั่ง

ภายในค าสั่ง default ทันที

Page 17: งานทำ Blog บทที่ 6

ควบคุมการท างานของโปรแกรมดว้ยค าสั่งวนลูป

(Repetition Control Statement)

ค าสั่งวนลูป เป็นค าส่ังที่ใช้ควบคุมการท างานของโปรแกรมแบวนซ้ า ๆ

การท างานเดิม ๆ ตามเงื่อนไขที่ก าหนด เช่น การวนซ้ าการท างานเดิมเป็น

จ านวน 10 รอบ ท างานซ้ า ๆ จนกว่าเงื่อนไขเป็นเท็จ เป็นต้น

• วนลูปการท างานด้วยจ านวนรอบที่แน่นอนด้วยค าส่ัง for

• วนลูปการท างานเมื่อเงื่อนไขเป็นจริงด้วยค าส่ัง while

• วนลูปการท างานอย่างน้อย 1 ครั้ง ด้วยค าส่ัง do...while

Page 18: งานทำ Blog บทที่ 6

ค าสั่ง for เป็นค าสั่งวนซ้ าการท างานเดิม ๆ ด้วย

จ านวนรอบที่แน่นอน โดยที่โปรแกรมจะตรวจสอบ

เงื่อนไขก่อนการท างานทุกรอบ ถ้าเงื่อนไขเป็นจริงให้

ท างานที่ชุดค าส่ังภายในลูปต่อไป เมื่อท างานเสร็จจะ

เพิ่ มหรือลดค่า ตัวแปรที่ ใช้ก าหนดเงื่ อนไข และ

ตรวจสอบเงื่อนไขใหม่อีกคร้ัง ถ้าเงื่อนไขเป็นเท็จให้

โปรแกรมออกจากลูปการท างานไปท างานที่ค าส่ัง

ถัดไปทันท ี

วนลปูการท างานด้วยจ านวนรอบทีแ่นน่อนด้วยค าสั่ง FOR

Page 19: งานทำ Blog บทที่ 6

วนลูปการท างานด้วยจ านวนรอบที่แน่นอนด้วยค าสั่ง for ค าส่ัง for ในภาษา C มีรูปแบบค าส่ังดังนี้

for(initinal; condition; change)

{

statements;

}

โดยที่ initial เป็นส่วนก าหนดค่าเริ่มต้นของตัวแปรที่ใช้ก าหนดเงื่อนไข

condition เป็นส่วนก าหนดเงื่อนไขการวนลูป

change เป็นส่วนการเปลี่ยนแปลงของตัวแปรในแต่ละรอบ

statements เป็นชุดค าส่ังที่ต้องท าเมื่อเงื่อนไขเป็นจริง

Page 20: งานทำ Blog บทที่ 6

จากรูปแบบค าสั่ง for เราสามารถเขียนผังงานการท างาน

(Flowchart) ได้ดังนี้

ตรวจสอบเงื่อนไข

ก าหนดค่าเริ่มต้น

ของตัวแปร

เท็จ

ชุดค าสั่ง

จริง

เปลี่ยนค่าตวัแปร

Page 21: งานทำ Blog บทที่ 6

วนลูปการท างานเมื่อเงื่อนไขเป็นจริงด้วยค าส่ัง while

ค าสั่ง while เป็นค าสั่งวนซ้ าการท างานเดิม ๆ ของโปรแกรมโดย

โปรแกรมตรวจสอบเงื่อนไขก่อนการท างานทุกครั้ง ถ้าเงื่อนไขที่ก าหนด

เป็นจริง โปรแกรมจะท างานที่ชุดค าสั่งภายในลูป เมื่อโปรแกรมท างาน

เสร็จจะตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขที่ก าหนดเป็นเท็จ

โปรแกรมจะออกจากลูปการท างานไปท างานที่ค าส่ังถัดไปทันที

ซึ่งค าส่ัง while ในภาษา C มีรูปแบบค าส่ังดังนี้

while(condition)

{

statements;

}

Page 22: งานทำ Blog บทที่ 6

โดยที่ condition เป็นเงื่อนไขที่ก าหนดให้ตรวจสอบก่อนท างานภายในลูปทุกครั้ง

statements เป็นชุดค าส่ังที่ต้องท าเมื่อเงื่อนไขเป็นจริง

ตรวจสอบเงื่อนไข

จริง

ชุดค าสั่ง

เท็จ

Page 23: งานทำ Blog บทที่ 6

วนลูปการท างานอยา่งนอ้ย 1 ครั้ง ด้วยค าสัง่ do…while

ค าสั่ง d0...while เป็นค าสั่งวนซ้ าการท างาน

เดิม ๆ โดยโปรแกรมจะท างานชุดค าส่ัง

ภายในลูปก่อน 1 รอบ จึงตรวจสอบเงื่อนไข

ที่ก าหนด ถ้าเงื่อนไขที่ก าหนดเป็นจริงให้

กลับไปท างานชุดค าส่ังภายในลูปอีกคร้ัง

และตรวจสอบเงื่อนไขที่ก าหนดอีกคร้ัง ถ้า

เงื่อนไขที่ก าหนดเป็นเท็จ โปรแกรมจะออก

จากลูปการท างานไปท างานที่ค าส่ังถัดไป

ทันที

Page 24: งานทำ Blog บทที่ 6

ซึ่งค าสั่ง do...while ในภาษา C มีรูปแบบค าส่ังดังนี้

do

{

statements;

}while (condition);

โดยที่ condition เป็นเงื่อนไขที่ก าหนดให้ตรวจสอบหลังท างานภายในลูป

ทุกครั้ง

statements เป็นชุดค าส่ังที่ท างานก่อนตรวจสอบเงื่อนไข

Page 25: งานทำ Blog บทที่ 6

จากรูปแบบค าสั่ ง do...while สามารถเขียนแผนผังการท างาน

(Flowchart) ได้ดังนี้

ชุดค าสั่ง

ตรวจสอบเงื่อนไข

เท็จ

จริง

Page 26: งานทำ Blog บทที่ 6

ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย

หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย

คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER