การใช้งาน while และ do…while Loop

ในบทช่วยสอนนี้ เราจะเรียนรู้การใช้ while และ do…while ในการเขียนโปรแกรม C++ ด้วยความช่วยเหลือจากตัวอย่าง

ในการเขียนโปรแกรมคอมพิวเตอร์ ใช้ลูปเพื่อทำซ้ำบล็อกของโค้ด

ตัวอย่างเช่น สมมติว่าเราต้องการแสดงข้อความ 100 ครั้ง จากนั้นแทนที่จะเขียนคำสั่ง print 100 ครั้ง เราสามารถใช้ลูปได้

นั่นเป็นเพียงตัวอย่างง่ายๆ เราสามารถบรรลุประสิทธิภาพและความซับซ้อนมากขึ้นในโปรแกรมของเราโดยการใช้ลูปอย่างมีประสิทธิภาพ

มี 3 ประเภทของลูปใน C ++

  1. for loop
  2. while loop
  3. 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การกระทำ
ครั้งที่ 1i = 1true1 ถูกพิมพ์ และ iเพิ่มขึ้นเป็น 2.
ครั้งที่ 2i = 2true2 ถูกพิมพ์ และ iเพิ่มขึ้นเป็น 3.
ครั้งที่ 3i = 3true3 ถูกพิมพ์ และ iเพิ่มขึ้นเป็น 4
ครั้งที่ 4i = 4true4 ถูกพิมพ์ และ iเพิ่มขึ้นเป็น 5.
ครั้งที่ 5i = 5true5 ถูกพิมพ์ และ iเพิ่มขึ้นเป็น 6.
ครั้งที่ 6i = 6falseการวนซ้ำสิ้นสุดลง


ตัวอย่างที่ 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
ครั้งที่ 1i = 2trueพิมพ์ 2 และ i เพิ่มขึ้นเป็น 3
ครั้งที่ 2i = 3trueพิมพ์ 3 และ i เพิ่มขึ้นเป็น 4
ครั้งที่ 3i = 4trueพิมพ์ 4 และ i เพิ่มขึ้นเป็น 5
ครั้งที่ 4i = 5trueพิมพ์ 5 และ i เพิ่มขึ้นเป็น 6
ครั้งที่ 5 i = 6falseการวนซ้ำสิ้นสุดลง


ตัวอย่างที่ 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
}


Leave a Reply

Your email address will not be published. Required fields are marked *