คำสั่งวน loop
ความหมายของลูป (loop)
ลูป (loop) ในที่นี้มีความหมายว่า การวนซ้ำซึ่งการวนซ้ำในทางภาษาคอมพิวเตอร์
คือ การทำคำสั่งหรือชุดคำสั่งนั้นซ้ำกันหลายๆครั้ง
ในการตรวจสอบว่าจะให้ลูปนั้นจบการทำงานเมื่อไรนั้น จะมีรูปแบบของการตรวจสอบเงือนไขอยู่ 2 แบบ
1.Pretest Loop ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็นเท็จถ้าเป็นจริงก็ให้เข้าไปทำคำสั่งหรือชุดคำส่งต่อไป
และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้วก็จะกลับมาทำการตรวจสอบเงื่อนไขอีกครั้ง
และจะทำเช่นนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ ก็จบการทำงานของลูป
2.post-Test loop ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ
ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิมอีกครั้งแลดะจะทำจนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
ลูปทั้งสองแบบนั้นจะต่างกันตรงที่จำนวนการทำคำสั่งหรือชุดคำสั่งนั้นจะไม่เท่ากัน จะเห็นได้ว่าลูปแบบ pretest นั้นโอกาสการทำคำสั่งหรือชุดคำสั่งที่น้อยที่สุดจะเท่ากับ 0
คือ เมื่อทำการตรวจสอบเงื่อนไขครั้งแรกแล้วเป็นเท็จก็จะออกจากลูป แต่ลูปแบบ post-test นั้นโอกาสที่น้อยที่สุดจะเท่ากับ 0 คือ
เมื่อเข้าจะทำคำสั่งหรือชุดคำสั่งก่อน 1 ครั้งและเมื่อตรวจสอบเงื่อนไขครั้งแรกแล้วจะเป็นเท็จ
ก็จะออกจากลูป
การกำหนดและปรับปรุง
ในการใช้ลูป จะมีการกระทำที่สำคัญอยู่ 2 อย่าง ที่จะขาดไม่ได้เลยซึ่งถ้าขาดไปจะทำให้ลูปนั้นไม่ทำงาน หรือลูปทำงานแบบไม่มีวันจบ
1. การกำหนดค่า ก่อนที่เริ่มใช้ลูปจะต้องมีการกำหนดค่าที่นะใช้เป็นตัวควบคุมลูปก่อนซึ่งตัวควบคุมนี้จะทำหน้าที่ในการตรวจอบว่าลูปนั้นได้ทำงานจนจบ
2. การปรับปรุง หลังจากที่ทำคำสั่งหรือชุดคำสั่งไปแล้วไม่มีการปับปรุงค่าของตัวควบคุมลูป
ก็จะทำให้ลูปนั้นกลายเป็นลูปไม่มีวันจบได้เพราะฉะนั้นจะต้องทำการปรับปรุงค่าของตัวควบคุมลูปทุกครั้งเพื่อจะได้นำค่าของตัวควบคุมไปตรวจสอบกับเงื่อนไขเพื่อจบการทำงานของลูป
ความแตกต่างระหว่าง Pretest Loop และ Post – Test Loop
Pretest Loop | Post-Test loop |
การกระทำ การกำหนดค่า 1 จำนวนครั้งในการตรวจสอบ n+1 จำนวนครั้งในการทำคำสั่ง n จำนวนครั้งในการปรับปรุง n จำนวนครั้งที่น้อยที่สุดในการวน 0 | การกระทำ การกำหนดค่า 1 จำนวนครั้งในการตรวจสอบ n จำนวนครั้งในการทำคำสั่ง n จำนวนครั้งในการปรับปรุง n |
n คือ จำนวนของการวนซ้ำ
คำสั่งวนลูปในภาษา C
คำสั่งลูปในภาษา C นั้นจะมีอยู่ 3 คำสั่ง คือ คำสั่ง While คำสั่ง for และคำสั่ง do…while
ซึ่งสองคำสั่งแรกเป็นลูปแบบ Pretest loop ส่วนคำสั่งสุดท้ายจะเป็นแบบ Post-test loop
ในการเขียนโปรแกรม บางครั้งจะต้องให้คอมพิวเตอร์ ทำบางคำสั่งมากกว่า 1 ครั้ง การทำงานซ้ำคำสั่งเดิม เป็นลักษณะการทำงานแบบ วนลูป (loop) ซึ่งในภาษา คอมพิวเตอร์ทุกภาษา จะต้องมีคำสั่งเพื่อบังคับ ให้คอมพิวเตอร์ ทำงานในลักษณะวนลูป สำหรับ ในภาษา C หรือ C++ คำสั่งวนลูปได้แก่ for, while และ do
1. คำสัง for
คำสั่ง for มีรูปแบบดังนี้
for(v=i; condition test; increment or decrement){
statement1;
statement2;
:
:
:
statementn;
}
การทำงานของคำสั่ง for จะเริ่มโดยการกำหนดค่าเริ่มแรก (i) ให้กับตัวแปรควบคุมลูป (Loop control variable) v แล้วจึงทดสอบว่าเงื่อนไข เป็นจริงหรือไม่ ถ้าเป็นจริงจะทำคำสัง่ต่างๆ ที่อยู่ระหว่าง { และ } จากนั้นจะเพิ่มหรือลดค่าของตัวแปร ควบคุม ลูป แล้วจึงทดสอบเงื่อนไข การทำงานจะวนซ้ำจนกระทั่ง เงื่อนไขเป็นจริง การวนลูป จึงจะสิ้นสุดลง หลักจากนั้นจึงจะมาทำคำสั่งที่อยู่ถัดจากเครื่องหมาย }
แผนผังการทำงานของคำสั่ง for
ตัวอย่าง โปรแกรมที่ 1
#include "stdio.h"
#include "conio.h"
main()
{
int i;;
clrscr();
for(i=1;i<=10;++i){
printf("%d\n",i);
}
printf("End of loop\n");
}
ผลลัพธ์
1
1. คำสัง for
คำสั่ง for มีรูปแบบดังนี้
for(v=i; condition test; increment or decrement){
statement1;
statement2;
:
:
:
statementn;
}
การทำงานของคำสั่ง for จะเริ่มโดยการกำหนดค่าเริ่มแรก (i) ให้กับตัวแปรควบคุมลูป (Loop control variable) v แล้วจึงทดสอบว่าเงื่อนไข เป็นจริงหรือไม่ ถ้าเป็นจริงจะทำคำสัง่ต่างๆ ที่อยู่ระหว่าง { และ } จากนั้นจะเพิ่มหรือลดค่าของตัวแปร ควบคุม ลูป แล้วจึงทดสอบเงื่อนไข การทำงานจะวนซ้ำจนกระทั่ง เงื่อนไขเป็นจริง การวนลูป จึงจะสิ้นสุดลง หลักจากนั้นจึงจะมาทำคำสั่งที่อยู่ถัดจากเครื่องหมาย }
แผนผังการทำงานของคำสั่ง for
ตัวอย่าง โปรแกรมที่ 1
#include "stdio.h"
#include "conio.h"
main()
{
int i;;
clrscr();
for(i=1;i<=10;++i){
printf("%d\n",i);
}
printf("End of loop\n");
}
ผลลัพธ์
1
0 ความคิดเห็น:
แสดงความคิดเห็น
สมัครสมาชิก ส่งความคิดเห็น [Atom]
<< หน้าแรก