การเขียนโปรแกรมคอมพิวเตอร์ - ลูป
ลองพิจารณาสถานการณ์เมื่อคุณต้องการพิมพ์ Hello, World!ห้าครั้ง. นี่คือโปรแกรม C ง่ายๆที่จะทำเช่นเดียวกัน -
#include <stdio.h>
int main() {
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
มันง่ายมาก แต่ลองพิจารณาสถานการณ์อื่นเมื่อคุณต้องการเขียนอีกครั้ง Hello, World!พันครั้ง เราไม่สามารถเขียนคำสั่ง printf () เป็นพัน ๆ ครั้งได้อย่างแน่นอน ภาษาโปรแกรมเกือบทั้งหมดมีแนวคิดที่เรียกว่าloopซึ่งช่วยในการดำเนินการคำสั่งอย่างน้อยหนึ่งคำสั่งได้ถึงจำนวนครั้งที่ต้องการ ภาษาโปรแกรมระดับสูงทั้งหมดมีรูปแบบต่างๆของการวนซ้ำซึ่งสามารถใช้เพื่อดำเนินการคำสั่งหนึ่งหรือหลายคำสั่งซ้ำ ๆ
มาเขียนโปรแกรม C ด้านบนด้วยความช่วยเหลือของไฟล์ while loop และต่อไปเราจะพูดถึงวิธีการทำงานของลูปนี้
#include <stdio.h>
int main() {
int i = 0;
while ( i < 5 ) {
printf( "Hello, World!\n");
i = i + 1;
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
โปรแกรมข้างต้นใช้ประโยชน์จากไฟล์ while loopซึ่งถูกใช้เพื่อเรียกใช้ชุดคำสั่งการเขียนโปรแกรมที่อยู่ภายใน {.... } ขั้นแรกให้คอมพิวเตอร์ตรวจสอบว่าเงื่อนไขที่กำหนดเช่นตัวแปร "a" น้อยกว่า 5 หรือไม่และหากพบว่าเงื่อนไขเป็นจริงระบบจะป้อน loop body เพื่อดำเนินการตามคำสั่งที่กำหนด ที่นี่เรามีสองคำสั่งต่อไปนี้ในเนื้อวน -
คำสั่งแรกคือฟังก์ชัน printf ()ซึ่งพิมพ์ Hello World!
คำสั่งที่สองคือi = i + 1ซึ่งใช้เพื่อเพิ่มค่าของตัวแปรi
หลังจากดำเนินการคำสั่งทั้งหมดที่ระบุใน loop body แล้วคอมพิวเตอร์จะกลับไปที่ while (i <5) และเงื่อนไขที่กำหนด (i <5) จะถูกตรวจสอบอีกครั้งและลูปจะถูกดำเนินการอีกครั้งหากเงื่อนไขนั้นเป็นจริง กระบวนการนี้ซ้ำจนกว่าเงื่อนไขที่กำหนดจะยังคงเป็นจริงซึ่งหมายความว่าตัวแปร "a" มีค่าน้อยกว่า 5
สรุปได้ว่าคำสั่งแบบวนซ้ำช่วยให้เราดำเนินการคำสั่งหรือกลุ่มของคำสั่งได้หลายครั้ง ด้านล่างเป็นรูปแบบทั่วไปของคำสั่งวนซ้ำในภาษาโปรแกรมส่วนใหญ่ -
บทช่วยสอนนี้ออกแบบมาเพื่อนำเสนอแนวคิดพื้นฐานของการเขียนโปรแกรมให้กับผู้ที่ไม่ใช่โปรแกรมเมอร์ดังนั้นเรามาพูดถึงลูปที่สำคัญที่สุดสองแบบที่มีอยู่ในภาษาโปรแกรมซี เมื่อคุณชัดเจนเกี่ยวกับลูปทั้งสองนี้แล้วคุณสามารถเลือกแบบฝึกหัดการเขียนโปรแกรม C หรือหนังสืออ้างอิงและตรวจสอบลูปอื่น ๆ ที่มีอยู่ใน C และวิธีการทำงาน
ในขณะที่วนซ้ำ
ก while loop ที่มีอยู่ในภาษา C Programming มีไวยากรณ์ต่อไปนี้ -
while ( condition ) {
/*....while loop body ....*/
}
โค้ดด้านบนสามารถแสดงในรูปแบบของโฟลว์ไดอะแกรมดังที่แสดงด้านล่าง -
ประเด็นสำคัญต่อไปนี้ควรสังเกตเกี่ยวกับ while loop -
ห่วงขณะเริ่มต้นด้วยคำสำคัญ while ตามด้วย condition อยู่ใน ()
นอกเหนือไปจากคำสั่ง while () คุณจะมีเนื้อหาของลูปที่อยู่ในวงเล็บปีกกา {...}.
ร่างกายของลูปในขณะที่สามารถมีซอร์สโค้ดบรรทัดหนึ่งหรือหลายบรรทัดเพื่อดำเนินการซ้ำ ๆ
หากส่วนของห่วงขณะมีเส้นเดียวแสดงว่าเป็นทางเลือกในการใช้วงเล็บปีกกา {...}.
ลูปในขณะที่ยังคงดำเนินการกับร่างกายจนกว่าจะได้รับ conditionถือเป็นความจริง ทันทีที่เงื่อนไขกลายเป็นเท็จ while ลูปจะออกมาและดำเนินการต่อจากคำสั่งถัดไปในทันทีหลังเนื้อหาลูป while
เงื่อนไขมักเป็นคำสั่งเชิงสัมพันธ์ซึ่งประเมินว่าเป็นจริงหรือเท็จ ค่าที่เท่ากับศูนย์จะถือว่าเป็นเท็จและค่าที่ไม่ใช่ศูนย์จะทำงานเหมือนจริง
ทำ ... ในขณะที่ห่วง
ลูปในขณะที่ตรวจสอบเงื่อนไขที่กำหนดก่อนที่จะรันคำสั่งใด ๆ ที่ให้ไว้ในส่วนของร่างกาย การเขียนโปรแกรม C จัดให้มีการวนซ้ำอีกรูปแบบหนึ่งเรียกว่าdo...whileที่อนุญาตให้ดำเนินการวนรอบก่อนที่จะตรวจสอบเงื่อนไขที่กำหนด มีไวยากรณ์ต่อไปนี้ -
do {
/*....do...while loop body ....*/
}
while ( condition );
โค้ดด้านบนสามารถแสดงในรูปแบบของโฟลว์ไดอะแกรมดังที่แสดงด้านล่าง -
หากคุณจะเขียนตัวอย่างข้างต้นโดยใช้ do...while วนแล้ว Hello, World จะให้ผลลัพธ์เดียวกัน -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
คำสั่งแบ่ง
เมื่อ breakพบคำสั่งภายในลูปลูปจะถูกยกเลิกทันทีและการควบคุมโปรแกรมจะดำเนินการต่อที่คำสั่งถัดไปตามลูป ไวยากรณ์สำหรับbreak คำสั่งใน C มีดังนี้ -
break;
ก break คำสั่งสามารถแสดงในรูปแบบของแผนภาพการไหลดังที่แสดงด้านล่าง -
โปรแกรมต่อไปนี้เป็นโปรแกรมข้างต้น แต่จะออกมาหลังจากพิมพ์ Hello World! สามครั้งเท่านั้น -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
if( i == 3 ) {
break;
}
}
while ( i < 5 );
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
คำสั่งดำเนินการต่อ
continue คำสั่งในการเขียนโปรแกรมภาษาซีทำงานคล้ายกับ breakคำให้การ. แทนที่จะบังคับให้เลิกจ้างcontinueบังคับให้การวนซ้ำครั้งต่อไปเกิดขึ้นโดยข้ามรหัสใด ๆ ที่อยู่ระหว่างนั้น ไวยากรณ์สำหรับcontinue คำสั่งใน C มีดังนี้ -
continue;
ก continue คำสั่งสามารถแสดงในรูปแบบของแผนภาพการไหลดังที่แสดงด้านล่าง -
ต่อไปนี้เป็นตัวแปรของโปรแกรมข้างต้น แต่จะข้ามการพิมพ์เมื่อตัวแปรมีค่าเท่ากับ 3 -
#include <stdio.h>
int main() {
int i = 0;
do {
if( i == 3 ) {
i = i + 1;
continue;
}
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
ลูปใน Java
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Java ที่รองรับเช่นกัน while และ do...whileลูป โปรแกรมต่อไปนี้จะพิมพ์ออกมาHello, World! ห้าเท่าในกรณีของการเขียนโปรแกรม C -
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ซึ่งจะต้องเหมือนกับผลลัพธ์ที่สร้างขึ้นจากตัวอย่างข้างต้น
public class DemoJava {
public static void main(String []args) {
int i = 0;
while ( i < 5 ) {
System.out.println("Hello, World!");
i = i + 1;
}
}
}
break และ continue คำสั่งในการเขียนโปรแกรม Java ทำงานในลักษณะเดียวกับที่ทำงานในการเขียนโปรแกรม C
ลูปใน Python
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Python Python ก็รองรับเช่นกันwhile และ do...whileลูป โปรแกรมต่อไปนี้จะพิมพ์ออกมาHello, World!ห้าเท่าของเราในกรณีของการเขียนโปรแกรม C ที่นี่คุณต้องสังเกตว่า Python ไม่ได้ใช้วงเล็บปีกกาสำหรับตัวห่วง แต่เพียงแค่ระบุเนื้อความของลูปโดยใช้การเยื้องของคำสั่ง
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ เพื่อแสดงความแตกต่างเราได้ใช้คำสั่งพิมพ์อีกหนึ่งคำสั่งซึ่งจะดำเนินการเมื่อการวนซ้ำสิ้นสุดลง
i = 0
while (i < 5):
print "Hello, World!"
i = i + 1
print "Loop ends"
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends
break และ continue คำสั่งใน Python ทำงานในลักษณะเดียวกับที่ทำในการเขียนโปรแกรม C