Loop, Infinite loop, and flag

Debug > more bug > repeat

Loop

การเขียนโปรแกรมให้ทำซ้ำจำเป็นจะต้องใช้คำสั่งประเภท Loop ซึ่งมีสองประเภทคือ While และ forเพื่อทำซ้ำ

while loop

เป็นการทำซ้ำแบบทำไปเรื่อยๆจนกว่าจะผิดเงื่อนไข เมื่อผิดเงื่อนไขโปรแกรมจะหยุดจากการทำซ้ำและไปยังคำสั่งที่มีอยู่ถัดไป

while(condition) { // task }

#include<iostream>
using namespace std;

int main () {
    int A = 0;

    while (A<10) {
        cout << "Doing this for "<< ++A <<" round"<<endl;
    }
    cout << "Program end"<<endl;
    return 0;
}

for loop

เป็นการทำซ้ำแบบจำกัดรอบ โดยสามารถกำหนดได้ว่าจะทำทั้งหมดกี่รอบ และสามารถนำไปประยุกต์ในการจัดการตัวแปรประเภทอาร์เรย์ได้ง่าย

for (round start; to round x; increasing) { //task }

Infinite loop

แต่ถ้าเราต้องการให้ทำซ้ำไปเรื่อยๆ โดยไม่หยุดต้องทำยังไง? เพียงกำหนดให้ loop ทำงานด้วยเงื่อนไขที่ถูกต้องตลอดโปรแกรมของเราก็จะทำงานไปเรื่อยๆโดยไม่หยุดแล้ว

while loop

for loop

แล้วทั้งสองแบบแตกต่างกันอย่างไร ในภาษา C/C++

Flag

  • Flag คืออะไร Flag คือส่วนหนึ่งของโปรแกรมที่ทำหน้าที่ส่งสัญญาณบอกว่าโปรแกรมนั้นได้ผ่านเงื่อนไขนั้นแล้วหรือยัง เช่นโปรแกรมตรวจสอบเลขเฉพาะ

อ้างอิง : geeksforgeeks

จากโปรแกรมด้านบนจะเห็นได้ว่าตัวแปร flag จะเป็นประเภท bool เพื่อเก็บค่าที่แสดงว่า true หรือ false เท่านั้น เมื่อโปรแกรมได้รับค่าตัวเลขที่เป็นจำนวนเฉพาะค่า flag ก็จะเป็น true และส่งค่ากลับไปยัง

if(isPrime(13))

เพื่อนำค่าไปใช้ต่อ

ไม่เพียงแค่จะใช้เขียนในโปรแกรมปกติเท่านั้น flag ยังสามารถใช้หยุด loop ได้ด้วยเมื่อใช้ Infinite loop เช่น

จากด้านบนจะเห็นว่าโปรแกรมจะนับจาก k ไปจนกว่าจะหารเลข 100 ลงตัวแล้วจะหยุดลง โดยมีตัวแปร flag เป็นตัวควบคุมการทำงานของโปรแกรม

Last updated

Was this helpful?