Week 5 การทำซ้ำโดย while loop และ do while loop

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมทดสอบที่1 ทดสอบการแสดงผลข้อความ
Advertisements

อัลกอริทึ่มทำงานวนซ้ำ
คำสั่ง while และ คำสั่ง do..while
การเขียนโปรแกรม แบบมีโครงสร้าง (ต่อ)
Control Statement if..else switch..case for while do-while.
Control Statement for while do-while.
การโปรแกรมควบคุมแบบทำงานซ้ำ
บทที่ 3 ตอนที่ 1 คำสั่งเงื่อนไขและการตัดสินใจ(p
Lecture no. 5 Control Statements
การควบคุมทิศทางการทำงาน
LAB # 4.
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
ผังงานโปรแกรม (Program Flowchart)
บทที่ 5 การทำงานแบบวนซ้ำ
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
CE 112 บทที่ 5 การทำซ้ำในภาษา C
Lab 8: คำสั่ง Do-While อ.ณัฐพงศ์ พยัฆคิน.
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
คำสั่งวนซ้ำ (Looping)
การควบคุมทิศทางการทำงานของโปรแกรม
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
คำสั่ง Repeat...Until คำสั่งควบคุมให้ทำงานซ้ำ
Repetitive Or Iterative
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
คำสั่งควบคุมการทำงาน
สุพจน์ สวัตติวงศ์ gamepad.pigcanfly.com
การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)
Chapter 5 คำสั่งควบคุมการทำซ้ำ
Chapter 7 Iteration Statement
โครงสร้างควบคุมการทำงาน
ครูรัตติยา บุญเกิด.
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
คำสั่งควบคุมการทำงานของ ActionScripts
Week 3 Flow Control in PHP
Week 6 การทำซ้ำโดย for loop
เสรี ชิโนดม ข้อความสั่งควบคุม เสรี ชิโนดม
Week 6 การทำซ้ำโดย for loop
Chapter 5 การทำซ้ำโดย while loop และ do while loop
Week 5 การทำซ้ำโดย while loop และ do while loop
คำสั่งควบคุมขั้นตอน Flow control statements
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
LOOPLOOP. LOOP คืออะไร ? - วงรอบการทำงาน - ทำงานแบบซ้ำๆ ไปเรื่อยๆตามเงื่อนไข เช่น - การแพ๊คของ 50 ชิ้นใส่กล่อง ทำไปเรื่อยๆ จนกว่า ของจะหมด - ตีดอทไปเรื่อยๆ.
อัลกอริทึ่มทำงานวนซ้ำ
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
อ. วชิระ หล่อประดิษฐ์. ตัว ดำเนินกา ร ศัพท์เฉพาะตัวอย่ าง ผลลัพธ์ ให้ a=3; b=2; Greater thana > b;True
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
การเขียน แบบวนซ้ำ , วนลูป
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
คำสั่งวนซ้ำ.
Week 6 For loop, break and continue (Control Structure 3)
C-Programming บทที่ 8 การทำซ้ำ C Programming.
Flowchart การเขียนผังงาน.
การเปรียบเทียบเงื่อนไข
การทำซ้ำ Pisit Nakjai.
การทำงานแบบวนซ้ำ (Iteration).
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Week 5 While and Do-While loop (Control Structure 2)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ผังงานโปรแกรม (Program Flowchart)
PHP: [5] คำสั่งควบคุม (Control statement)
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop) Part1
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop) Part2
ใบสำเนางานนำเสนอ:

Week 5 การทำซ้ำโดย while loop และ do while loop

Outline Loop while Statement do-while Statement Mini Debugging Lab การใช้ Loop ในภาษา C สามารถทำได้โดยใช้คำสั่ง “while”, “do while” และ “for” ใน คาบเรียนนี้ จะเรียน “while” และ “do while” ก่อน และเรียน “for” ในคาบถัดไป

Loop ในการเขียนโปรแกรม จะมีการประมวลผลซ้ำ (Loop หรือ Iterate) เพื่อให้ โปรแกรมทำงานตาม Statement หรือการประมวลผล ที่กำหนดไว้ ซ้ำมากกว่า 1 ครั้ง โดยไม่จำเป็นที่จะต้องเขียน Statement นั้น ซ้ำไปซ้ำมาในโค้ด การทำงานจะทำงานตาม Statement ไปจนหมด แล้ว ถ้าหาก เงื่อนไขที่กำหนดไว้ให้ทำซ้ำ ยังเป็นจริง โปรแกรมจะวนกลับไปทำงานตาม Statement อีกรอบ จนกว่า เงื่อนไขที่กำหนดไว้จะเป็นเท็จ

ส่วนประกอบของการ iteration มีอยู่ 3 ประเภท Initialization คือ การกำหนดค่าเริ่มต้นของตัวแปรที่จะเป็นเงื่อนไขในการ iteration เช่น x = 1 Testing คือ การทดสอบว่า เงื่อนไขที่ทำการ Iteration นั้นยังเป็นจริงหรือไม่ จะมีการทำ Iteration ไปเรื่อยๆ หากเงื่อนไขยังเป็นจริง เช่น x > 99 Incrementing เป็นการเปลี่ยนแปลงค่าของตัวแปรที่ใช้เป็นเงื่อนไขในการ Iteration เช่น x = x + 1 การทำงานของ Loop จะมีการกำหนดเงื่อนไขที่จะให้ โปรแกรมทำงานซ้ำ และ เงื่อนไขที่จะทำให้โปรแกรมหยุดการทำงานซ้ำ โดยทั่วไป สามารถใช้ตัวแปรมาช่วยในการกำหนดเงื่อนไขดังกล่าวได้ เช่น กำหนดให้ตัวแปร x เป็นจำนวนครั้ง จะทำเงื่อนไขเดิมซ้ำเรื่อยๆ หากจำนวนครั้งยังน้อยกว่า 10 หรือ x < 10 นั่นเอง และ ทุกครั้งที่ทำงานจะต้องมีการเพิ่มค่าของตัวแปร x เข้าไป ดังนั้น ส่วนประกอบของการทำซ้ำ หรือ Iteration จึงประกอบไปด้วย 3 ส่วน คือ Initialization เพื่อกำหนดค่าเริ่มต้นของตัวแปรที่ใช้ทดสอบ Testing ดูว่าค่าของตัวแปรนั้นยังอยู่ในเงื่อนไขที่ให้ทำซ้ำอยู่หรือไม่ เปลี่ยนแปลงค่าของตัวแปรที่ใช้ทดสอบ

ประเภทของ Iteration Statement คือ วิธีการทำให้โปรแกรมทำงานเป็น Loop ได้ ในภาษา C มีอยู่ 4 ชนิดด้วยกัน while statement do-while statement for statement break and continue statement วิธีการมีอยู่ 4 ประเภท while do while for break และ continue สำหรับประเภทที่ 4 break และ continue จะเป็นคำสั่งที่สามารถใช้ร่วมกับ 1-3 เพื่อกำหนดเงื่อนไขให้ Loop หยุดทำงาน หรือให้ Loop ทำงานต่อไป

while statement

while Statement มีการตรวจสอบเงื่อนไขก่อน หากเงื่อนไขเป็นจริง โปรแกรมจะเริ่มทำตาม Statement ที่กำหนดไว้ แล้วกลับไปเริ่มต้นใหม่ จนกว่าเงื่อนไขจะเป็นไม่เป็นจริง ถึงจะหยุดการทำงาน แล้วออกไปจาก Loop การใช้ while จะแตกต่างกับ do while จะมีลักษณะการใช้งานคล้ายๆ กัน แต่แตกต่างกันตรงที่ว่า while จะมีการตรวจสอบเงื่อนไขก่อน ถึงจะเริ่มทำในครั้งแรก และยังจะตรวจสอบเงื่อนไขสำหรับตอบต่อๆ ไปอีกด้วย แต่ do while จะเริ่มทำทำงานตามคำสั่งก่อน 1 ครั้ง จากนั้นถึงจะตรวจสอบเงื่อนไงสำหรับรอบต่อ ๆไป

Syntax while (condition) { statement1; statement2; ... statementN; } จะเริ่มต้นด้วยการกำหนดเงื่อนไข ที่จะให้ทำงานเป็น Loop ก่อนเสมอ และภายใน statement ใน Loop ควรจะมี statement ที่ทำการเปลี่ยนแปลงค่าตัวแปรที่ใช้ตรวจสอบ มิเช่นนั้น Loop อาจทำงานไม่หยุด

Flowchart Entry Statement 2 True Statement 1 False Exit expr จาก Flowchart จะพบว่า เริ่มต้น จะต้องมีการทดสอบ เงื่อนไข (Condition) จาก Expression (expr) เสมอ ว่าเป็นจริงหรือไม่ False Exit

Example Example 1 พิมพ์เลข 1 ถึง 10 โดยใช้ while loop Example 2 เลือกการทำงานจากตัวเลข Menu ที่กำหนดไว้ หากเลือกตัวเลขนอกเหนือที่กำหนดไว้ จะต้อง ใส่ตัวเลขที่เลือกใหม่

Example 1 #include <stdio.h> void main() { int count; count = 1; printf(“Print count from 1 to 10\n”); while (count <= 10) { printf(“%d ”, count); count++; } printf(“\n”); ในตัวอย่างนี้ จะพิมพ์ตัวเลขตั้งแต่ 1 ถึง 10 เงื่อนไขที่ให้ loop ทำงานคือ ตราบใด ที่ ตัวแปร count น้อยกว่าหรือเท่ากับ 10 ให้ทำงานต่อไปเรื่อยๆ while (count <= 10) โดยที่ ตัวแปร count จะมีค่าเริ่มต้นเท่ากับ 1 และภายใน Loop จะมีการเปลี่ยนแปลงค่าของตัวแปร count คือ ทุกๆ รอบการทำงาน ตัวแปร count จะมีค่าเพิ่มขึ้นมา 1 count++ Print count from 1 to 10 1 2 3 4 5 6 7 8 9 10 ตัวอย่าง Output จากการทำงาน

Example 2 #include <stdio.h> int main() { int a; /* initatialize value of a so that it can enter the loop */ a = 4; while (a != 1 && a !=2 && a !=3) { printf("1. Check spelling\n"); printf("2. Correct spelling errors\n"); printf("3. Display spelling errors\n"); printf("Enter your choice (1-3): "); scanf(“\n%d", &a); /* read selection from keyboard */ switch(a) { case 1: printf("Check spelling\n"); break; case 2: printf("Correct spelling errors\n"); case 3: printf("Display spelling errors\n"); default: /* do nothing */ } จากตัวอย่างนี้ ผู้ใช้จะต้องเลือกตัวเลือกที่มาจาก 1 และ 2 และ 3 หากผู้ใช้ใส่ตัวเลือกนอกเหนือจาก 1 และ 2 และ 3 Loop จะทำการรับค่าซ้ำไปเรื่อยๆ จนกว่าผู้ใช้จะใส่ตัวเลขให้ตรงเงื่อนไข สิ่งที่ทำซ้ำใน Loop คือ การแสดงผลตัวเลือกในเมนูออกมาทุกครั้ง และรับค่าจากผู้ใช้ เนื่องจากการใช้งาน while loop จะต้องการตรวจสอบเงื่อนไขก่อนมีเงื่อนไข จึงต้องมีการกำหนดค่าตัวแปร a ที่ใช้ในการตรวจสอบเงื่อนไข ให้มีค่าเริ่มต้นที่จะสามารถทำให้ Loop เริ่มทำงานนั่นเอง นั่นก็คือ Loop จะทำงานได้เมื่อ ตัวแปร a ไม่ค่าไม่เท่ากับ 1 และ 2 และ 3 ดังนั้นตัวแปร a จะถูกกำหนดให้เป็นค่าใดๆ ก็ได้ที่นอกเหนือไปจาก 1 และ 2 และ 3 Note ในคำสั่ง scanf จะใช้ scanf(“\n%d", &a); มีการใส่ \n เข้ามา เนื่องจากการใส่ค่าลงไป จะกดตัวอักษรและ Enter แต่โปรแกรมจะทำการอ่านค่าตัวอักษร ในรอบแรกและรอบถัดไปจะอ่านค่า Enter ทำให้ในการทำงานรอบที่สองโปรแกรมไม่รอรับค่า ละเพื่อให้การทำงานในรอบต่อๆ ไปสามารถทำได้ จะมีการใช่ \n เพื่อให้โปรแกรมทิ้งค่า Enter ไปแล้วรอรับอักษรรอบใหม่ ซึ่งสามารถใช้คำสั่ง getchar แทนได้

Example 2 1. Check spelling 2. Correct spelling errors 3. Display spelling errors Enter your choice (1-3): 5 Enter your choice (1-3): 1 Check spelling ตัวอย่าง Output จากการทำงาน

do while Statement

do while Statement จะแตกต่างจาก while Statement โดยที่ โปรแกรมจะเริ่มทำงานตาม Statement ที่ระบุไว้เลย โดยไม่มีการเช็ค Condition ก่อน จากนั้นเมื่อทำงานเสร็จแล้วถึงจะเช็คเงื่อนไข หากเงื่อนไขเป็นจริง จะทำการทำซ้ำ แต่หากเงื่อนไขเป็นเท็จจะจบการทำงานแล้วออกจาก Loop ข้อแตกต่างของ do while จาก while คือ do while จะเริ่มทำงานครั้งแรกโดยไม่ตรวจสอบเงื่อนไขเลย แต่จะเริ่มตรวจสอบเงื่อนไขสำหรับรอบครั้งถัดไป

Syntax do { statement1; statement2; ... statementN; } while (condition); รูปแบบการใช้งาน จะแตกต่างจาก while ตรงที่ว่า คำสั่ง while (condition) จะย้ายจากบรรทัดบนสุดไปอยู่บรรทัดท้ายสุด

Flowchart Entry Statement 1 Statement 2 True False Exit expr จาก Flowchart พบว่า ในรอบแรกจะเริ่มทำงานตาม Statement ใน Loop เลย โดยไม่มีการตรวจสอบเงื่อนไขก่อน False Exit

Example Example 1 พิมพ์เลข 1 ถึง 10 โดยใช้ while Loop Example 2 เลือกการทำงานจากตัวเลข Menu ที่กำหนดไว้ หากเลือกตัวเลขนอกเหนือที่กำหนดไว้ จะต้อง ใส่ตัวเลขที่เลือกใหม่

Example 1 /* print count from 1 to 10 */ #include <stdio.h> void main() { int count; count = 1; printf(“Print count from 1 to 10\n”); do { printf(“%d ”, count); count++; } while (count <=10); printf(“\n”); } สิ่งที่เปลี่ยนแปลงไปคือ ใช้ do while เข้ามาแทน while แต่ผลที่ได้รับยังเหมือนกัน Print count from 1 to 10 1 2 3 4 5 6 7 8 9 10 ตัวอย่าง output จากการทำงาน

Example 2 #include <stdio.h> void main() { int a; do { printf("1. Check spelling\n"); printf("2. Correct spelling errors\n"); printf("3. Display spelling errors\n"); printf("Enter your choice (1-3): "); scanf(“\n%d", &a); /* read selection from keyboard */ switch(a) { case 1: printf("Check spelling\n"); break; case 2: printf("Correct spelling errors\n"); case 3: printf("Display spelling errors\n"); default: /* do nothing */ } } while (a != 1 && a != 2 && a !=3); สิ่งที่แตกต่างจากการใช้ do while ก็คือ โปรแกรมจะเริ่มทำงานใน Loop โดยไม่มีการตรวจสอบเงื่อนไขก่อน ดังนั้น จึงไม่จำเป็นต้องกำหนดค่าให้ ตัวแปรตั้งแต่แรก เนื่องจากว่า ใน Loop จะมีคำสั่งที่ใช้รับค่าของตัวแปร a เข้ามาจากผู้ใช้อยู่แล้ว (ตัวอย่างที่ 1 ไม่มีการรับค่าจากผู้ใช้ จึงต้องมีการกำหนดค่าเริ่มต้นให้ตัวแปร count)

Example 2 1. Check spelling 2. Correct spelling errors 3. Display spelling errors Enter your choice (1-3): 5 Enter your choice (1-3): 1 Check spelling ตัวอย่าง output จากการทำงาน

Mini Debugging ปัญหาที่พบได้บ่อยจากการใช้ Loop แนวทางการแก้ไข Infinity Loop คือ โปรแกรมทำงานตาม Statement ไปเรื่อยๆ โดยไม่สามารถออกจาก Loop ได้ โปรแกรม ไม่สามารถทำงาน ใน Loop ได้ แนวทางการแก้ไข ตรวจสอบ Condition ที่กำหนด ว่า เป็น จริง หรือ เป็น เท็จ เสมอ หรือไม่ ตรวจสอบค่าของตัวแปรที่ใช้งาน ว่ามีการเปลี่ยนแปลงค่าได้หรือไม่ ตรวจสอบ ว่า ค่าของตัวแปรที่ใช้ในเงื่อนไข สามารถทำให้ Condition เป็น จริง หรือ เท็จได้หรือไม่