SlideShare a Scribd company logo
1 of 17
การเขียนคาสั่งควบคุมแบบวนซ้า
คาสั่งควบคุมแบบวนซ้า
การวนซ้า เป็นการกาหนดให้มีการประมวลผลคาสั่งซ้า ๆ กันตั้งแต่ 1 ครั้งขึ้นไป ทั้งนี้
ขึ้นอยู่กับเงื่อนไขในการทางาน ซึ่งจะช่วยให้การเขียนโปรแกรมได้ง่าย สะดวก
ต้องเขียนข้อความคาสั่งเดิมหลายครั้งทาให้โปรแกรมมีความกระชับ
สามารถตรวจสอบความผิดพลาดได้ง่าย
โครงสร้างควบคุมแบบวนซ้า
(repetition control structure)
ประกอบด้วย
• คาสั่ง for
• คาสั่ง while
• คาสั่ง do-while
โดยแต่ละโครงสร้างคาสั่ง มีรูปแบบและวิธีการใช้งานที่แตกต่างกัน นักเขียน
โปรแกรมสามารถเลือกใช้ได้ตามความเหมาะสมกับลักษณะการใช้งานในโปรแกรม
คำสั่ง for
คาสั่ง for เป็นคาสั่งที่สั่งให้ประมวลผลคาสั่ง หรือชุดคาสั่ง วนซ้าได้หลาย
รอบ โดยต้องกาหนดจานวนรอบให้การวนซ้าที่แน่นอน รูปแบบของคาสั่ง for เป็น
ดังนี้ for (การกาหนดค่าเริ่มต้นของตัวนับ; เงื่อนไขการวนซ้า; การเปลี่ยนแปลงค่า
ตัวนับ) คาสั่ง;
การกาหนดค่าเริ่มต้นของตัวนับ เงื่อนไขการวนซ้า และ การเปลี่ยนแปลงค่า
ตัวนับ เป็นนิพจน์ที่มีการทางานร่วมกันในคาสั่ง for ดังนี้
• การกาหนดค่าเริ่มต้นของตัวนับ เป็นนิพจน์ที่ใช้สาหรับกาหนดค่าเริ่มต้น ให้กับ
ตัวแปรที่ทาหน้าที่ควบคุมการวนซ้า และจะประมวลผลเพียงครั้งเดียว
• เงื่อนไขการวนซ้า เป็นนิพจน์ที่ใช้สาหรับประเมินค่า คำสั่ง จะถูกประมวลผล
หรือไม่ นั่นคือถ้าเงื่อนไขกำรวนซ้ำ มีค่าจริง คำสั่ง จะถูกประมวลผล และ
ถ้า เงื่อนไขกำรวนซ้ำ มีค่าเท็จ คาสั่ง for จะสิ้นสุดลง
• การเปลี่ยนแปลงค่าตัวนับ เป็นนิพจน์ที่จะถูกประมวลผลทุกครั้งหลังจาก คาสั่ง ถูก
ประมวลผล โดย กำรเปลี่ยนแปลงค่ำตัวนับ เป็นนิพจน์ใด ๆ ที่สามารถประเมินค่า
ได้เช่น นิพจน์เพิ่มค่า นิพจน์ลดค่า และนิพจน์กาหนดค่า เป็นต้น
ตัวอย่างโปรแกรมแสดงตัวเลข
ผลลัพธ์
คำสั่ง while
รูปแบบของคาสั่ง while เป็นดังนี้
เงื่อนไขการวนซ้า เป็นนิพจน์ใดๆ ที่สามารถประเมิน
ค่าได้โดยจะต้องเขียนไว้ระหว่างเครื่องหมาย ( และ )
เสมอเช่นเดียวกับคาสั่ง if และคาสั่ง if – else
while (เงื่อนไขการวนซ้า)
คาสั่ง;
เมื่อเริ่มต้นประมวลผลคาสั่ง while เงื่อนไขกำรวนซ้ำ จะถูกตรวจสอบค่า
ถ้าพบว่า เงื่อนไขกำรวนซ้ำ มีค่าเป็นจริง คำสั่ง ภายใต้คาสั่ง while จะถูกตรวจสอบ
ค่าเป็นรอบแรก แล้ว เงื่อนไขกำรวนซ้ำจะถูกตรวจสอบค่าอีกครั้ง หากพบว่า เงื่อนไข
กำรวนซ้ำ ยังมีค่าเป็น จริง คาสั่ง จะถูกตรวจสอบค่าอีกครั้ง จนกระทั่ง เงื่อนไขกำรวน
ซ้ำ มีค่าเป็น เท็จ คาสั่ง while จึงจะสิ้นสุดลง
การตรวจสอบค่า เงื่อนไขกำรวนซ้ำ ของคาสั่ง while ในครั้งแรก และพบว่ามี
ค่าเป็น เท็จ คำสั่งจะไม่ประมวลผลเลย
ตัวอย่างโปรแกรมรับและแสดงค่าข้อมูล
ผลลัพธ์
หมายเหตุ
หมายถึง ให้กดปุ่ม Enter บนแป้นพิมพ์
^z หมายถึง ให้กดปุ่ม Ctrl - z บนแป้นพิมพ์
โปรแกรม InOut1.c แสดงการใช้คาสั่งของภาษาซี 2 คาสั่ง
getchar() และ putchar() เพื่อใช้รับข้อมูลนาเข้าและแสดงผลลัพธ์แทน
การใช้คาสั่ง scanf() และ printf()
คาสั่ง getchar() เป็นคาสั่งไม่มีอาร์กิวเมนต์ และจะรับอักขระ 1 ตัว
จากแผงแป้นอักขระแล้ว ส่งกลับค่าจานวนเต็มที่มีค่าในตารางรหัสแอสกีที่ตรงกับ
อักขระดังกล่าว
ฟังก์ชัน putchar() มีอาร์กิวเมนต์ 1 ตัวเป็นชนิด int และแสดงอักขระ
ในตารางรหัสแอสกีที่มีค่าตรงกับจานวนเต็มดังกล่าวจอภาพ
สาหรับ EOF เป็นค่าคงที่ที่นิยามอยู่ในแฟ้มส่วนหัวชื่อ stdio.h และใช้
เป็นอักขระสาหรับตรวจสอบการสิ้นสุดการป้องกันข้อมูลซึ่งในที่นี้ คือการป้องกัน
Ctrl - z
จากโปรแกรม InOut1.c ตราบใดที่อักขระผู้ใช้ป้อนไม่ใช้อักขระ
สิ้นสุดการป้อนข้อมูลเงื่อนไข การวนซ้า iochar != EOF จะยังมีค่าเป็นจริง
และแสดงผลค่าอักขระนั้นออกทางจอภาพก่อนที่จะวนรับอักขระตัวถัดไป และใน
รอบที่ผู้ใช้ป้อน Ctrl - z เงื่อนไขการวนซ้า iochar != EOF จะมีค่าเป็นเท็จ
และคาสั่ง while จะสิ้นสุดการทางาน
ในกรณีที่ผู้ใช้ป้อน Ctrl-z ในครั้งแรก เงื่อนไขการวนซ้า iochar !=
EOF จะมีค่าเป็นเท็จและคาสั่ง while จะสิ้นสุดการทางานในทันที โดยที่คาสั่ง
ในบรรทัดที่ 11 และ 12 ไม่ถูกประมวลผลเลย
คาสั่ง do-while
รูปแบบของคาสั่ง do-while เป็นดังนี้
do
คำสั่ง;
while (เงื่อนไขกำรวนซ้ำ);
คาสั่ง จะถูกประมวลผลโดยไม่มีเงื่อนไขใด ๆ ในรอบแรก จากนั้นเงื่อนไข
การวนซ้า จะถูกตรวจสอบค่า และคาสั่ง จะถูกประมวลผลซ้าอีกทุกครั้งที่ เงื่อนไขการ
วนซ้า มีค่าเป็น จริง และในครั้งแรกที่เงื่อนไขการวนซ้า มีค่าเป็น เท็จ คาสั่ง do-
while จึงจะสิ้นสุดลง
คาสั่ง ภายใต้คาสั่ง do-while อาจเป็นคาสั่งอย่างง่ายหรือคาสั่งเชิงประกอบ
ตัวอย่างโปรแกรมเลขยกกาลัง
ผลลัพธ์
หมายเหตุ
หมายถึง ให้กดปุ่ม Enter บนแป้นพิมพ์
สมาชิก
1. นายเจษฎากร เผ่าพันธุ์ เลขที่ 3 ม.6/3
2. นายธนภัทร เชื้อหนองปรง เลขที่ 9 ม.6/3
3. นางสาวอัยการณ์ โพธิ์ทอง เลขที่ 16 ม.6/3
4. นางสาวขวัญชนก แพร่อาพา เลขที่ 26 ม.6/3
5. นางสาวจิณณพัต โอภากุลวงษ์ เลขที่ 27 ม.6/3
6. นางสาวมรรษวัณฏ์ จงเจริญ เลขที่ 30 ม.6/3

More Related Content

Similar to การเขียนคำสั่งควบคุมแบบวนซ้ำ

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
Chatkal Sutoy
 

Similar to การเขียนคำสั่งควบคุมแบบวนซ้ำ (6)

My map
My mapMy map
My map
 
Powerpoint บทที่ 5
Powerpoint บทที่ 5Powerpoint บทที่ 5
Powerpoint บทที่ 5
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก ม.4/5 กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก ม.4/5 กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก ม.4/5 กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก ม.4/5 กลุ่ม 3
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือกการเขียนคำสั่งควบคุมแบบมีทางเลือก
การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
การเขียนคำสั่งแบบวนซ้ำ
การเขียนคำสั่งแบบวนซ้ำการเขียนคำสั่งแบบวนซ้ำ
การเขียนคำสั่งแบบวนซ้ำ
 

การเขียนคำสั่งควบคุมแบบวนซ้ำ

  • 2. คาสั่งควบคุมแบบวนซ้า การวนซ้า เป็นการกาหนดให้มีการประมวลผลคาสั่งซ้า ๆ กันตั้งแต่ 1 ครั้งขึ้นไป ทั้งนี้ ขึ้นอยู่กับเงื่อนไขในการทางาน ซึ่งจะช่วยให้การเขียนโปรแกรมได้ง่าย สะดวก ต้องเขียนข้อความคาสั่งเดิมหลายครั้งทาให้โปรแกรมมีความกระชับ สามารถตรวจสอบความผิดพลาดได้ง่าย
  • 3. โครงสร้างควบคุมแบบวนซ้า (repetition control structure) ประกอบด้วย • คาสั่ง for • คาสั่ง while • คาสั่ง do-while โดยแต่ละโครงสร้างคาสั่ง มีรูปแบบและวิธีการใช้งานที่แตกต่างกัน นักเขียน โปรแกรมสามารถเลือกใช้ได้ตามความเหมาะสมกับลักษณะการใช้งานในโปรแกรม
  • 4. คำสั่ง for คาสั่ง for เป็นคาสั่งที่สั่งให้ประมวลผลคาสั่ง หรือชุดคาสั่ง วนซ้าได้หลาย รอบ โดยต้องกาหนดจานวนรอบให้การวนซ้าที่แน่นอน รูปแบบของคาสั่ง for เป็น ดังนี้ for (การกาหนดค่าเริ่มต้นของตัวนับ; เงื่อนไขการวนซ้า; การเปลี่ยนแปลงค่า ตัวนับ) คาสั่ง;
  • 5. การกาหนดค่าเริ่มต้นของตัวนับ เงื่อนไขการวนซ้า และ การเปลี่ยนแปลงค่า ตัวนับ เป็นนิพจน์ที่มีการทางานร่วมกันในคาสั่ง for ดังนี้ • การกาหนดค่าเริ่มต้นของตัวนับ เป็นนิพจน์ที่ใช้สาหรับกาหนดค่าเริ่มต้น ให้กับ ตัวแปรที่ทาหน้าที่ควบคุมการวนซ้า และจะประมวลผลเพียงครั้งเดียว • เงื่อนไขการวนซ้า เป็นนิพจน์ที่ใช้สาหรับประเมินค่า คำสั่ง จะถูกประมวลผล หรือไม่ นั่นคือถ้าเงื่อนไขกำรวนซ้ำ มีค่าจริง คำสั่ง จะถูกประมวลผล และ ถ้า เงื่อนไขกำรวนซ้ำ มีค่าเท็จ คาสั่ง for จะสิ้นสุดลง • การเปลี่ยนแปลงค่าตัวนับ เป็นนิพจน์ที่จะถูกประมวลผลทุกครั้งหลังจาก คาสั่ง ถูก ประมวลผล โดย กำรเปลี่ยนแปลงค่ำตัวนับ เป็นนิพจน์ใด ๆ ที่สามารถประเมินค่า ได้เช่น นิพจน์เพิ่มค่า นิพจน์ลดค่า และนิพจน์กาหนดค่า เป็นต้น
  • 8. คำสั่ง while รูปแบบของคาสั่ง while เป็นดังนี้ เงื่อนไขการวนซ้า เป็นนิพจน์ใดๆ ที่สามารถประเมิน ค่าได้โดยจะต้องเขียนไว้ระหว่างเครื่องหมาย ( และ ) เสมอเช่นเดียวกับคาสั่ง if และคาสั่ง if – else while (เงื่อนไขการวนซ้า) คาสั่ง;
  • 9. เมื่อเริ่มต้นประมวลผลคาสั่ง while เงื่อนไขกำรวนซ้ำ จะถูกตรวจสอบค่า ถ้าพบว่า เงื่อนไขกำรวนซ้ำ มีค่าเป็นจริง คำสั่ง ภายใต้คาสั่ง while จะถูกตรวจสอบ ค่าเป็นรอบแรก แล้ว เงื่อนไขกำรวนซ้ำจะถูกตรวจสอบค่าอีกครั้ง หากพบว่า เงื่อนไข กำรวนซ้ำ ยังมีค่าเป็น จริง คาสั่ง จะถูกตรวจสอบค่าอีกครั้ง จนกระทั่ง เงื่อนไขกำรวน ซ้ำ มีค่าเป็น เท็จ คาสั่ง while จึงจะสิ้นสุดลง การตรวจสอบค่า เงื่อนไขกำรวนซ้ำ ของคาสั่ง while ในครั้งแรก และพบว่ามี ค่าเป็น เท็จ คำสั่งจะไม่ประมวลผลเลย
  • 11. ผลลัพธ์ หมายเหตุ หมายถึง ให้กดปุ่ม Enter บนแป้นพิมพ์ ^z หมายถึง ให้กดปุ่ม Ctrl - z บนแป้นพิมพ์
  • 12. โปรแกรม InOut1.c แสดงการใช้คาสั่งของภาษาซี 2 คาสั่ง getchar() และ putchar() เพื่อใช้รับข้อมูลนาเข้าและแสดงผลลัพธ์แทน การใช้คาสั่ง scanf() และ printf() คาสั่ง getchar() เป็นคาสั่งไม่มีอาร์กิวเมนต์ และจะรับอักขระ 1 ตัว จากแผงแป้นอักขระแล้ว ส่งกลับค่าจานวนเต็มที่มีค่าในตารางรหัสแอสกีที่ตรงกับ อักขระดังกล่าว ฟังก์ชัน putchar() มีอาร์กิวเมนต์ 1 ตัวเป็นชนิด int และแสดงอักขระ ในตารางรหัสแอสกีที่มีค่าตรงกับจานวนเต็มดังกล่าวจอภาพ สาหรับ EOF เป็นค่าคงที่ที่นิยามอยู่ในแฟ้มส่วนหัวชื่อ stdio.h และใช้ เป็นอักขระสาหรับตรวจสอบการสิ้นสุดการป้องกันข้อมูลซึ่งในที่นี้ คือการป้องกัน Ctrl - z
  • 13. จากโปรแกรม InOut1.c ตราบใดที่อักขระผู้ใช้ป้อนไม่ใช้อักขระ สิ้นสุดการป้อนข้อมูลเงื่อนไข การวนซ้า iochar != EOF จะยังมีค่าเป็นจริง และแสดงผลค่าอักขระนั้นออกทางจอภาพก่อนที่จะวนรับอักขระตัวถัดไป และใน รอบที่ผู้ใช้ป้อน Ctrl - z เงื่อนไขการวนซ้า iochar != EOF จะมีค่าเป็นเท็จ และคาสั่ง while จะสิ้นสุดการทางาน ในกรณีที่ผู้ใช้ป้อน Ctrl-z ในครั้งแรก เงื่อนไขการวนซ้า iochar != EOF จะมีค่าเป็นเท็จและคาสั่ง while จะสิ้นสุดการทางานในทันที โดยที่คาสั่ง ในบรรทัดที่ 11 และ 12 ไม่ถูกประมวลผลเลย
  • 14. คาสั่ง do-while รูปแบบของคาสั่ง do-while เป็นดังนี้ do คำสั่ง; while (เงื่อนไขกำรวนซ้ำ);
  • 15. คาสั่ง จะถูกประมวลผลโดยไม่มีเงื่อนไขใด ๆ ในรอบแรก จากนั้นเงื่อนไข การวนซ้า จะถูกตรวจสอบค่า และคาสั่ง จะถูกประมวลผลซ้าอีกทุกครั้งที่ เงื่อนไขการ วนซ้า มีค่าเป็น จริง และในครั้งแรกที่เงื่อนไขการวนซ้า มีค่าเป็น เท็จ คาสั่ง do- while จึงจะสิ้นสุดลง คาสั่ง ภายใต้คาสั่ง do-while อาจเป็นคาสั่งอย่างง่ายหรือคาสั่งเชิงประกอบ ตัวอย่างโปรแกรมเลขยกกาลัง
  • 17. สมาชิก 1. นายเจษฎากร เผ่าพันธุ์ เลขที่ 3 ม.6/3 2. นายธนภัทร เชื้อหนองปรง เลขที่ 9 ม.6/3 3. นางสาวอัยการณ์ โพธิ์ทอง เลขที่ 16 ม.6/3 4. นางสาวขวัญชนก แพร่อาพา เลขที่ 26 ม.6/3 5. นางสาวจิณณพัต โอภากุลวงษ์ เลขที่ 27 ม.6/3 6. นางสาวมรรษวัณฏ์ จงเจริญ เลขที่ 30 ม.6/3