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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึ่มทำงานวนซ้ำ
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
ตัวอย่าง Flowchart.
การควบคุมทิศทางการทำงาน
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
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
Chapter 5 คำสั่งควบคุมการทำซ้ำ
Chapter 7 Iteration Statement
โครงสร้างควบคุมการทำงาน
ครูรัตติยา บุญเกิด.
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
คำสั่งควบคุมการทำงานของ ActionScripts
Week 3 Flow Control in PHP
Week 6 การทำซ้ำโดย for loop
Week 5 การทำซ้ำโดย while loop และ do while loop
Week 6 การทำซ้ำโดย for loop
Week 5 การทำซ้ำโดย while loop และ do while loop
คำสั่งควบคุมขั้นตอน Flow control statements
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
CHAPTER 4 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
ใบสำเนางานนำเสนอ:

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

Agenda while loop do while loop Mini debug for while loop Lab

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

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

ประเภทของ Iteration Statement คือ วิธีการทำให้โปรแกรมทำงานเป็น loop ได้ ในภาษา C มีอยู่ 4 ชนิดด้วยกัน while statement do-while statement for statement break and continue statement

while statement

while statement มีการตรวจสอบเงื่อนไขก่อน หากเงื่อนไขเป็นจริง โปรแกรมจะเริ่มทำตาม statement ที่กำหนดไว้ แล้วกลับไปเริ่มต้นใหม่ จนกว่าเงื่อนไขจะเป็นไม่เป็นจริง ถึงจะหยุดการทำงาน แล้วออกไปจาก loop

syntax while (condition) { statement1; statement2; … statementN; }

flowchart Entry Statement 2 expr True Statement 1 False Exit

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

Example 1 ตัวอย่าง output จากการทำงาน #include <stdio.h> main() { int count; count = 1; printf(“Print count from 1 to 10\n”); while (count <= 10) printf(“%d ”, count); count++; } printf(“\n”); 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; /* initative 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): "); /* read selection from keyboard */ scanf("%d", &a); 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 */ } return (0);

Example 2 ตัวอย่าง output จากการทำงาน 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

syntax do { statement1; statement2; … statementN; } while (condition);

flowchart Entry Statement 1 Statement 2 expr True False Exit

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

Example 1 ตัวอย่าง output จากการทำงาน /* print count from 1 to 10 */ #include <stdio.h> main() { int count; count = 1; printf(“Print count from 1 to 10\n”); do { printf(“%d ”, count); count++; } while (count <=10); printf(“\n”); } 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; do { printf("1. Check spelling\n"); printf("2. Correct spelling errors\n"); printf("3. Display spelling errors\n"); printf("Enter your choice (1-3): "); /* read selection from keyboard */ scanf("%d", &a); 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); return (0);

Example 2 ตัวอย่าง output จากการทำงาน 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 จากการทำงาน

Null statement เราสามารถใช้งาน empty statement (null statement) ใน while statement ได้ โดยใช้ ; ต่อท้าย หรือ ในบรรทัดใหม่ เนื่องจากมีการทำงาน ได้ทำไปแล้วในเงื่อนไขของ while จึงไม่จำเป็นต้องมีการทำงานอีกใน loop ตัวอย่าง while ((c = getchar()) == ‘ ’) ; หรือ while ((c = getchar()) == ‘ ’) ; ทำงานเหมือน while ((c = getchar()) == ‘ ’) { /* do nothing */ }

Null statement นั่นคือ blank character ใน input stream จะถูกข้าม (เมื่อตัว input stream เป็น blank character จะเข้า loop ได้ แล้วจะไม่ทำอะไร แต่จะไปรับ ค่า input ใหม่อีกครั้ง เรื่อยๆ จนกว่าจะไม่ใช่ blank character) หากต้องการให้ white space ถูกข้ามไป สามารถใช้ code ดังนี้ while ((c = getchar()) == ‘ ’ || c == ‘\n’ || c == ‘\t’);

Mini debugging ปัญหาที่พบได้บ่อยจากการใช้ loop แนวทางการแก้ไข infinity loop คือ โปรแกรมทำงานตาม statement ไปเรื่อยๆ โดยไม่สามารถออกจาก loop ได้ โปรแกรม ไม่สามารถทำงาน ใน loop ได้ แนวทางการแก้ไข ตรวจสอบ condition ที่กำหนด ว่า เป็น จริง หรือ เป็น เท็จ เสมอ หรือไม่ ตรวจสอบค่าของตัวแปรที่ใช้งาน ว่ามีการเปลี่ยนแปลงค่าได้หรือไม่ ตรวจสอบ ว่า ค่าของตัวแปรที่ใช้ในเงื่อนไข สามารถทำให้ condition เป็น จริง หรือ เท็จได้หรือไม่

Example while (x = 5) หากใช้เงื่อนไขดังนี้ statement ที่อยู่ใน loop while จะ วนต่อไปเรื่อยๆ ไม่สามารถออก loop ได้ (infinity loop) ค่าที่ได้จาก (x = 5) คือ 1 คือ หมายความว่า เรากำหนดค่า 1 ให้กับตัวแปร x ได้สำเร็จ แต่ไม่ได้เป็นการเปรียบเทียบว่า x เท่ากับ 5 หรือไม่