16
คำสั่ง คำสั่ง For,While,Do while For,While,Do while

กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

Embed Size (px)

Citation preview

Page 1: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำสัง่ คำำสัง่For,While,Do whileFor,While,Do while

Page 2: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำสัง่ คำำสัง่ ForFor

Page 3: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำสั่ง คำำสั่ง ForFor คำำสั่ง FOR เป็นคำำสั่งกำำหนดเง่ือนไขเป็นจำำนวนครั้งที่จะทำำตำมชุดคำำสั่งต่ำง

ๆ ภำยใน loop เหมำะที่จะใช้กับงำนประเภทที่ไม่มีกำรเปลี่ยนแปลง

รูปแบบ

FOR ตัวแปร := ค่ำเริ่มต้น to (DOWN TO) ค่ำสุดท้ำย DOคำำสั่ง;

เช่น

FOR J:=1 TO 5 DOWRITELN(‘I AM A EMPLOYEE’);

หรือ 

FOR J:=10 DOWN TO 1 DOWRITELN(‘I AM A EMPLOYEE’);

Page 4: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

ตัวอยำ่งตัวอยำ่ง

PROGRAM EXAM4;PROGRAM EXAM4;VAR I:INTEGER;VAR I:INTEGER;BEGINBEGINFOR I:= 1 TO 3 DOFOR I:= 1 TO 3 DOWRITELN(‘I AM A TEACHER’);WRITELN(‘I AM A TEACHER’);END.END.

ผลลัพธ์ผลลัพธ์

I AM A TEACHERI AM A TEACHERI AM A TEACHERI AM A TEACHERI AM A TEACHERI AM A TEACHER

Page 5: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

ข้อควรระว ังข ้อควรระว ัง

1. 1. ในกำรเขียนโปรแกรมยำว ๆ น้ัน อย่ำกำำหนดค่ำตัวแปรภำยใน ในกำรเขียนโปรแกรมยำว ๆ น้ัน อย่ำกำำหนดค่ำตัวแปรภำยในloop loop ที่เป็นตัวเดียวกันกับตัวแปรที่ใช้เป็นตัวนับจำำนวนครั้งของกำรที่เป็นตัวเดียวกันกับตัวแปรที่ใช้เป็นตัวนับจำำนวนครั้งของกำร

วนซำ้ำ เพรำะจะทำำให้เป็นกำรวนซำ้ำไม่รู้จบ วนซำ้ำ เพรำะจะทำำให้เป็นกำรวนซำ้ำไม่รู้จบ

2. 2. ไม่ควรเปลี่ยนค่ำตัวนับกำรวนซำ้ำเพรำะเป็นกำรเขียนโปรแกรมที่ไม่ควรเปลี่ยนค่ำตัวนับกำรวนซำ้ำเพรำะเป็นกำรเขียนโปรแกรมที่ไม่ดีไม่ดี

3. 3. ถ้ำมีกำรกำำหนดค่ำตัวแปรเป็นค่ำคงที่มำก่อน กำรเปลี่ยนค่ำตัว ถ้ำมีกำรกำำหนดค่ำตัวแปรเป็นค่ำคงที่มำก่อน กำรเปลี่ยนค่ำตัวนับในกำรวนซำ้ำจะไม่มีผลต่อกำรนับกำรวนนซำ้ำนับในกำรวนซำ้ำจะไม่มีผลต่อกำรนับกำรวนนซำ้ำ

4. 4. ไม่ควรกำำหนดค่ำเริ่มต้นมำกกว่ำค่ำสุดท้ำยไม่ควรกำำหนดค่ำเริ่มต้นมำกกว่ำค่ำสุดท้ำย

Page 6: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

สรุปสรุป

คำำสั่ง คำำสั่ง FOR FOR จะต้องมีกำรกำำหนดค่ำเริ่มต้นจะต้องมีกำรกำำหนดค่ำเริ่มต้น และคำ่สดุท้ำยก่อน กำรวนซำ้ำเครื่องจะทำำกำร และคำ่สดุท้ำยก่อน กำรวนซำ้ำเครื่องจะทำำกำร

วนซำ้ำในช่วงของคำำสัง่ที่ต้องกำรไปเรื่อง ๆ วนซำ้ำในช่วงของคำำสัง่ที่ต้องกำรไปเรื่อง ๆ จนถึงค่ำสุดท้ำย กำรเพิ่มและลดของกำรวนซำ้ำ จนถึงค่ำสุดท้ำย กำรเพิ่มและลดของกำรวนซำ้ำ

ปกติจะเปน็ขั้น ขั้นละ ปกติจะเปน็ขั้น ขั้นละ 1 1 เสมอ ถ้ำต้องกำรวนซำ้ำ เสมอ ถ้ำต้องกำรวนซำ้ำ เปน็ช่วง ๆ หลำยคำำสั่งให้เริ่มชว่งนั้นด้วย เปน็ช่วง ๆ หลำยคำำสั่งให้เริ่มชว่งนั้นด้วย

BEGIN BEGIN และจบด้วย และจบด้วย END; END;

Page 7: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำสั่ง คำำสั่ง WhileWhile

Page 8: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำอธิบำยคำำอธิบำย

จำกรูปแบบของคำำสั่ง จำกรูปแบบของคำำสั่ง while while จะมีกำรเช็คเง่ือนไขก่อนว่ำเป็นจริงหรือเท็จ จะมีกำรเช็คเง่ือนไขก่อนว่ำเป็นจริงหรือเท็จ ถำ้เง่ือนไขเป็นจริงก็จะเข้ำมำทำำงำนในขอบเขตของ ถำ้เง่ือนไขเป็นจริงก็จะเข้ำมำทำำงำนในขอบเขตของ while while และเม่ือทำำงำนจบและเม่ือทำำงำนจบ

แล้วก็จะวนกลับมำ เช็คเง่ือนไขที่ แล้วก็จะวนกลับมำ เช็คเง่ือนไขที่ while while กำำหนดไว้อีกครั้งจะทำำเช่นน้ีไปเรื่อยๆ กำำหนดไว้อีกครั้งจะทำำเช่นน้ีไปเรื่อยๆ ตรำบใดที่เง่ือนไขยังคงเป็นจริงอยู่กจ็ะทำำคำำสั่งที่อยู่ภำยในคำำสั่ง ตรำบใดที่เง่ือนไขยังคงเป็นจริงอยู่กจ็ะทำำคำำสั่งที่อยู่ภำยในคำำสั่ง while while ไปเรื่อยๆ ไปเรื่อยๆ

จนกว่ำเม่ือตรวจสอบเง่ือนไข แล้วว่ำเป็นเท็จ จึงจะกระโดดออกมำทำำงำนที่คำำสั่ง จนกว่ำเม่ือตรวจสอบเง่ือนไข แล้วว่ำเป็นเท็จ จึงจะกระโดดออกมำทำำงำนที่คำำสั่ง ถดัไปที่อยู่นอกลูปของคำำสั่ง ถดัไปที่อยู่นอกลูปของคำำสั่ง while while

Page 9: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

ตัวอย่ำงกำรใช้คำำสั่ง ตัวอย่ำงกำรใช้คำำสั่ง WhileWhile

Page 10: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

จำกตัวอย่ำงข้ำงต้นโปรแกรมที่เงื่อนไข จำกตัวอย่ำงข้ำงต้นโปรแกรมที่เงื่อนไข while while มีกำรมีกำร กำำหนดไว้ว่ำค่ำของ กำำหนดไว้ว่ำค่ำของ i i ต้องไม่เกิน ต้องไม่เกิน 10 10 ซ่ึงเรำกำำหนดตัวแปร ซ่ึงเรำกำำหนดตัวแปร i i ไว้ไว้

ในตอนต้นไว้เป็น ในตอนต้นไว้เป็น 1 1 เม่ือเข้ำมำที่คำำสั่ง เม่ือเข้ำมำที่คำำสั่ง while while เงือ่นไข จึงเป็น เงือ่นไข จึงเป็น จริง จำกน้ันก็จะแสดงค่ำ จริง จำกน้ันก็จะแสดงค่ำ i i ออกมำแล้วทำำกำรบวกค่ำ ออกมำแล้วทำำกำรบวกค่ำ i i อีก อีก 1 1

แลว้กลับไปเช็คเงื่อนไขอีก ทำำเช่นน้ีไปเรือ่ยๆ จนค่ำ แลว้กลับไปเช็คเงื่อนไขอีก ทำำเช่นน้ีไปเรือ่ยๆ จนค่ำ i i บวกไปบวกไป จนถึง จนถึง 11 11 จะทำำให้เงื่อนไขเป็นเท็จจึงออกจำก ลูป จะทำำให้เงื่อนไขเป็นเท็จจึงออกจำก ลูป while while ได้ได้

ข ้อควรระว ังของกำรใช้งำนข้อควรระว ังของกำรใช้งำนต้องแน่ใจว่ำเงือ่นไขทีเ่รำกำำหนดจะต้องมีจุดสิ้นสุดด้วยกค็ือต้องแน่ใจว่ำเงือ่นไขทีเ่รำกำำหนดจะต้องมีจุดสิ้นสุดด้วยกค็ือ

เงื่อนไขที่จะทำำให้เป็นเท็จ ถ้ำไม่มจุดสิ้นสุดจะทำำให้ลูปวนแบบ เงื่อนไขที่จะทำำให้เป็นเท็จ ถ้ำไม่มจุดสิ้นสุดจะทำำให้ลูปวนแบบไม่รู้จบไม่รู้จบ

Page 11: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

คำำสั่ง คำำสั่ง Do whileDo while

Page 12: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

กำรวนซำ้ำโดยใช้คำำสั่ง กำรวนซำ้ำโดยใช้คำำสั่ง do-while do-while มโีครงสร้ำงกำรมโีครงสร้ำงกำร

ทำำงำน ดังรูป ทำำงำน ดังรูป

Page 13: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

โครงสร ้ำงกำรวนซำ้ำโดยใช้ค ำำส ัง่ โครงสร ้ำงกำรวนซำ้ำโดยใช้ค ำำส ัง่ do-while do-while มรี ูปมรี ูป แบบคำำส ัง่กำรใช้งำน ดังน ี้ แบบคำำส ัง่กำรใช้งำน ดังน ี้

dodo{{

คำำสั่งที ่คำำสั่งที่ 1;1;}while (}while (เงื่อนไขเงื่อนไข));;

คำำสั่งที ่คำำสั่งที่ 2;2;

หลกักำรทำำงำนของกำรวนซำ้ำโดยใช้คำำสั่ง หลกักำรทำำงำนของกำรวนซำ้ำโดยใช้คำำสั่ง do-while do-while คือ คือ โปรแกรมจะทำำคำำสั่งที ่โปรแกรมจะทำำคำำสั่งที่ 1 1 ก่อน ก่อน 1 1 รอบ แล้วจึงทำำกำรตรวจสอบ รอบ แล้วจึงทำำกำรตรวจสอบ

เงือ่นไขวำ่เป็นจริงหรือไม่ หำกเงือ่นไขเป็นจริง เงือ่นไขวำ่เป็นจริงหรือไม่ หำกเงือ่นไขเป็นจริง((true true หรือ หรือ 1) 1) จะจะ ทำำคำำสั่งในบลอ็คคำำสัง่สั่้้งที ่ทำำคำำสั่งในบลอ็คคำำสัง่สั่้้งที่ 1 1 และเม่ือ ผลกำรตรวจสอบ และเม่ือ ผลกำรตรวจสอบ

เงือ่นไขเป็นเท็จเงือ่นไขเป็นเท็จ((false false หรือ หรือ 0) 0) จะออกทำำกำรวนซำ้ำจะออกทำำกำรวนซำ้ำ*** *** กำรวนซำ้ำโดยใช้คำำสั่ง กำรวนซำ้ำโดยใช้คำำสั่ง do-while do-while จะทำำซำ้ำอย่ำงน้อย จะทำำซำ้ำอย่ำงน้อย 1 1

รอบ ไม่ว่ำเงือ่นไขจะเป็นจริงหรือไม่ก็ตำม รอบ ไม่ว่ำเงือ่นไขจะเป็นจริงหรือไม่ก็ตำม

Page 14: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

ตวัอย่ำงผังงำนตวัอย่ำงผังงำน

รหสัโปรแกรมรหสัโปรแกรม

#include <stdio.h>#include <stdio.h>#include <conio.h>#include <conio.h>main()main(){{int i;int i;i=1;i=1;dodo{{printf(“%d “,i);printf(“%d “,i);i++; //i=i+1i++; //i=i+1} while (i<=10);} while (i<=10);getch();getch();}}

Page 15: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

หน้ำจอผลลพัธ ์หน ้ำจอผลลพัธ ์((Out put)Out put)

      

Page 16: กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while

สมำชิกสมำชิก

นำย ประพนธ์ ศรีวิเชยีร นำย ประพนธ์ ศรีวิเชยีร นำย วชริวิทย์ คำำภำ นำย วชริวิทย์ คำำภำ นำย สิทธเิรศ บอ่ทรัพย์ นำย สิทธเิรศ บอ่ทรัพย์ นำย อรรถพร สุกใส นำย อรรถพร สุกใส

นำงสำว นันธิยำ กำญจนสธุำ นำงสำว นันธิยำ กำญจนสธุำ นำวสำว นุจรี บญุชูเชดิ นำวสำว นุจรี บญุชูเชดิ