การใช้งาน while และ do…while Loop
ในบทช่วยสอนนี้ เราจะเรียนรู้การใช้ while และ do…while ในการเขียนโปรแกรม C++ ด้วยความช่วยเหลือจากตัวอย่าง
ในการเขียนโปรแกรมคอมพิวเตอร์ ใช้ลูปเพื่อทำซ้ำบล็อกของโค้ด
ตัวอย่างเช่น สมมติว่าเราต้องการแสดงข้อความ 100 ครั้ง จากนั้นแทนที่จะเขียนคำสั่ง print 100 ครั้ง เราสามารถใช้ลูปได้
นั่นเป็นเพียงตัวอย่างง่ายๆ เราสามารถบรรลุประสิทธิภาพและความซับซ้อนมากขึ้นในโปรแกรมของเราโดยการใช้ลูปอย่างมีประสิทธิภาพ
มี 3 ประเภทของลูปใน C ++
- for loop
- while loop
- do…while loop
ในบทช่วยสอนก่อนหน้านี้ เราได้เรียนรู้เกี่ยวกับ C++ for loop เราจะมาเรียนรู้เรื่อง while และ do…while loops
C++ while Loop
ไวยากรณ์ของ while loop ลูปคือ:
while (condition) {
// body of the loop
}
ที่นี่,
- while loop ประเมินเงื่อนไข
- หากเงื่อนไขประเมินว่าเป็น true โค้ดภายใน while loop จะถูกดำเนินการ
- เงื่อนไขจะถูกประเมินอีกครั้ง
- กระบวนการนี้จะดำเนินต่อไปจนกว่าเงื่อนไขจะเป็น false
- เมื่อเงื่อนไขประเมินเป็น false การวนซ้ำจะสิ้นสุดลง
ผังงานของ while Loop

ตัวอย่างที่ 1: แสดงตัวเลขตั้งแต่ 1 ถึง 5
#include <iostream>
using namespace std;
int main() {
int i = 1;
// while loop from 1 to 5
while (i <= 5) {
cout << i << " ";
++i;
}
return 0;
}
เอาท์พุต
1 2 3 4 5
นี่คือวิธีการทำงานของโปรแกรม
การวนซ้ำ | ตัวแปร | i<= 5 | การกระทำ |
---|---|---|---|
ครั้งที่ 1 | i = 1 | true | 1 ถูกพิมพ์ และ i เพิ่มขึ้นเป็น 2 . |
ครั้งที่ 2 | i = 2 | true | 2 ถูกพิมพ์ และ i เพิ่มขึ้นเป็น 3 . |
ครั้งที่ 3 | i = 3 | true | 3 ถูกพิมพ์ และ i เพิ่มขึ้นเป็น 4 |
ครั้งที่ 4 | i = 4 | true | 4 ถูกพิมพ์ และ i เพิ่มขึ้นเป็น 5 . |
ครั้งที่ 5 | i = 5 | true | 5 ถูกพิมพ์ และ i เพิ่มขึ้นเป็น 6 . |
ครั้งที่ 6 | i = 6 | false | การวนซ้ำสิ้นสุดลง |
ตัวอย่างที่ 2: ผลรวมของจำนวนบวกเท่านั้น
#include <iostream>
using namespace std;
int main() {
int number;
int sum = 0;
// take input from the user
cout << "Enter a number: ";
cin >> number;
while (number >= 0) {
// add all positive numbers
sum += number;
// take input again if the number is positive
cout << "Enter a number: ";
cin >> number;
}
// display the sum
cout << "\nThe sum is " << sum << endl;
return 0;
}
เอาท์พุต
Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25
ในโปรแกรมนี้ ผู้ใช้จะได้รับแจ้งให้ป้อนตัวเลข ซึ่งจัดเก็บไว้ในหมายเลขตัวแปร
ในการเก็บผลรวมของตัวเลข เราประกาศผลรวมของตัวแปรและกำหนดค่าเริ่มต้นให้เป็นค่า 0
while loop จะดำเนินต่อไปจนกว่าผู้ใช้จะป้อนจำนวนลบ ในระหว่างการทำซ้ำแต่ละครั้ง จำนวนที่ป้อนโดยผู้ใช้จะถูกเพิ่มลงในตัวแปรผลรวม
เมื่อผู้ใช้ป้อนจำนวนลบ การวนซ้ำจะสิ้นสุดลง ในที่สุด ผลรวมทั้งหมดจะปรากฏขึ้น
C++ do…while Loop
do…while loop เป็นตัวแปรของ while loop ที่มีความแตกต่างที่สำคัญอย่างหนึ่ง: เนื้อความของ do…while loop จะดำเนินการหนึ่งครั้งก่อนที่จะตรวจสอบเงื่อนไข
ไวยากรณ์ของมันคือ:
do {
// body of loop;
}
while (condition);
ที่นี่,
- เนื้อหาของลูปจะดำเนินการในตอนแรก จากนั้นเงื่อนไขจะถูกประเมิน
- หากเงื่อนไขประเมินเป็น true เนื้อหาของลูปภายในคำสั่ง do จะถูกดำเนินการอีกครั้ง
- เงื่อนไขจะได้รับการประเมินอีกครั้ง
- หากเงื่อนไขประเมินเป็น true เนื้อหาของลูปภายในคำสั่ง do จะถูกดำเนินการอีกครั้ง
- กระบวนการนี้จะดำเนินต่อไปจนกว่าเงื่อนไขจะประเมินเป็น false จากนั้น loop จะหยุด
ผังงานของ do…while Loop

ตัวอย่างที่ 3: แสดงตัวเลขตั้งแต่ 1 ถึง 5
#include <iostream>
using namespace std;
int main() {
int i = 1;
// do...while loop from 1 to 5
do {
cout << i << " ";
++i;
}
while (i <= 5);
return 0;
}
เอาท์พุต
1 2 3 4 5
นี่คือวิธีการทำงานของโปรแกรม
การวนซ้ำ | ตัวแปร | i <= 5 | การกระทำ |
---|---|---|---|
i = 1 | ไม่ได้ตรวจสอบ | พิมพ์ 1 และ i เพิ่มขึ้นเป็น 2 | |
ครั้งที่ 1 | i = 2 | true | พิมพ์ 2 และ i เพิ่มขึ้นเป็น 3 |
ครั้งที่ 2 | i = 3 | true | พิมพ์ 3 และ i เพิ่มขึ้นเป็น 4 |
ครั้งที่ 3 | i = 4 | true | พิมพ์ 4 และ i เพิ่มขึ้นเป็น 5 |
ครั้งที่ 4 | i = 5 | true | พิมพ์ 5 และ i เพิ่มขึ้นเป็น 6 |
ครั้งที่ 5 | i = 6 | false | การวนซ้ำสิ้นสุดลง |
ตัวอย่างที่ 4: ผลรวมของจำนวนบวกเท่านั้น
#include <iostream>
using namespace std;
int main() {
int number = 0;
int sum = 0;
do {
sum += number;
// take input from the user
cout << "Enter a number: ";
cin >> number;
}
while (number >= 0);
// display the sum
cout << "\nThe sum is " << sum << endl;
return 0;
}
เอาท์พุต 1
Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25
ที่นี่ do…while loop จะวนซ้ำจะดำเนินต่อไปจนกว่าผู้ใช้จะป้อนจำนวนลบ เมื่อตัวเลขเป็นค่าลบ การวนซ้ำจะสิ้นสุดลง จำนวนลบจะไม่ถูกเพิ่มลงในตัวแปร sum
เอาท์พุต 2
Enter a number: -6
The sum is 0.
เนื้อความของ do…while จะทำงานเพียงครั้งเดียวหากผู้ใช้ป้อนจำนวนลบ
Infinite while loop
หากเงื่อนไขของการวนซ้ำเป็นจริงเสมอ การวนซ้ำจะทำงานเป็นเวลาไม่จำกัด (จนกว่าหน่วยความจำจะเต็ม) ตัวอย่างเช่น,
// infinite while loop
while(true) {
// body of the loop
}
นี่คือตัวอย่างการทำ infinite do…while loop
// infinite do...while loop
int count = 1;
do {
// body of loop
}
while(count == 1);
ในโปรแกรมข้างต้น เงื่อนไขจะเป็นจริงเสมอ ดังนั้นเนื้อความของลูปจะทำงานเป็นเวลาอนันต์
การเลือกใช้ for หรือ while loops
for loop มักใช้เมื่อทราบจำนวนการวนซ้ำ ตัวอย่างเช่น,
// This loop is iterated 5 times
for (int i = 1; i <=5; ++i) {
// body of the loop
}
ที่นี่ เรารู้ว่า for-loop จะถูกดำเนินการ 5 ครั้ง
อย่างไรก็ตาม while และ do…while loop มักใช้เมื่อไม่ทราบจำนวนการวนซ้ำ ตัวอย่างเช่น,
while (condition) {
// body of the loop
}