คําสั่งทําซํ้าเป็นคําสั่งที่ใช้ในการวงรอบ (loop) การทํางานของโปรแกรม ซึ่งมีประโยชน์ในกรณีที่ต้องการทํางานหนึ่งๆ ซํ้ากันหลายๆครั้ง
คําสั่งทําซํ้า for
รูปแบบคําสั่ง
for ( กำหนดค่าเริ่มต้นให้กับตัวแปร ; เงื่อนไขที่ต้องการตรวจสอบ ; ปรับค่าตัวแปร) {
คําสั่งที่ 1;
}
คําสั่งที่ 2;
คําสั่งนี้ประกอบไปด้วย 3 ส่วนคือ
- ส่วนกําหนดค่าเริ่มต้นให้กับตัวแปร ในส่วนนี้เป็นการกําหนดค่าเริ่มต้นให้กับตัวแปรที่ต้องการใช้งานใน loop โดยปกติแล้วเราจะใช้ตัวแปรนี้ในการควบคุม loop
- ส่วนของเงือนไขที่ต้องการตรวจสอบ เป็นนิพจน์ตรรกะที่เป็นเงือนไขในการทํางานของ loop โดยถ้าเงื่อนไขเป็นจริงจะยังทํางาน loop ต่อไป แต่ถ้าเงื่อนไขเป็นเท็จจะออกจากการทํางานของ loop
- ส่วนการปรับค่าของตัวแปร เป็นส่วนของการปรับค่าตัวแปรที่ใช้ใน loop เพื่อใช้เปลี่ยนแปลงค่า เพิ่มหรือลดค่าเพื่อให้การตรวจสอบในส่วนที่สองเป็นเท็จหรือเป็นจริงตามที่เราต้องการ
การทํางานของ for นั้นจะเริ่มทํางานตามลําดับที่กล่าวมาข้างต้นคือ เริ่มแรกกําหนดค่าตัวแปรเริ่มต้น ต่อมาก็จรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็ทําคําสั่งที่ 1 หลังจากนั้นก็ปรับค่าของตัวแปรในส่วนที่3 และไปตรวจสอบเงื่อนไขอีกครั้ง ทํางานวนไปแบบนี้เรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ
ตัวอย่าง
int i;
for( i=0 ; i<100 ; i++){
printf("%d\n", i);
}
จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 0-99
คําสั่งทําซั้า while
รูปแบบคําสั่ง
while ( เงื่อนไข ) {
คําสั่งที่ 1;
}
คําสั่งที่ 2;
หลักการทํางานคือ จะทําการตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะทํางานคําสั่งที่ 1 เมื่อทํางานคําสั่งที่ 1 จบ ก็จะมาตรวจสอบเงื่อนไขอีก จะทําแบบนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จจึงจะออกจาก loop มาทําคําสั่งที่ 2
ตัวอย่าง
int number = 100;
while(number > 0){
printf("%d", number);
number--;
}
จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 100-1
คําสั่งทําซั้า do-while
รูปแบบคําสั่ง
do {
คําสั่งที่ 1;
} while ( เงื่อนไข );
คําสั่งที่ 2;
หลักการทํางานคือ คําสั่งนี้จะทํางานคําสั่งที่ 1 อย่างน้อย 1 ครั้งเสมอ ไม่ว่าเงื่อนไขจะเป็นจริงหรือเท็จก็ตาม จากนั้นจึงค่อยมาจรวจสอบเงื่อนไขภายหลังจะเป็นจริงก็กลับไปทําคําสั่งที่ 1 อีกรอบ แต่หากเงื่อนไขเป็นเท็จก็จะออกจากการทํางานของ loop ไปทําคําสั่งที่ 2 ต่อไป
int number = 100;
do{
printf("%d", number);
number--;
}while(number > 0)
จากตัวอย่างด้านบน โปรแกรมจะวนลูป ทั้งหมด 100 ครั้ง โดยแต่ละครั้งจะแสดงตัวเลขไปด้วย จาก 100-1