استفاده از break و continue

استفاده از break و continue در PHP: راهنمای جامع

استفاده از break و continue در PHP: راهنمای جامع

در برنامه‌نویسی، حلقه‌ها (Loops) ابزاری قدرتمند برای تکرار یک بلوک کد هستند. PHP نیز از انواع مختلف حلقه‌ها مانند for، while و do-while پشتیبانی می‌کند. گاهی اوقات، نیاز داریم که اجرای یک حلقه را قبل از تکمیل تمام تکرارها متوقف کنیم یا برخی از تکرارها را نادیده بگیریم. در این موارد، دستورات break و continue به کمک ما می‌آیند. این مقاله به بررسی جامع این دو دستور در PHP می‌پردازد و کاربردهای عملی آن‌ها را با مثال‌های متعدد نشان می‌دهد.

دستور break: خروج از حلقه

دستور break برای خروج فوری از حلقه جاری استفاده می‌شود. هنگامی که دستور break در داخل یک حلقه اجرا می‌شود، کنترل برنامه به اولین دستور بعد از حلقه منتقل می‌شود. به عبارت دیگر، تمام تکرارهای باقیمانده حلقه نادیده گرفته می‌شوند.

مثال 1: خروج از حلقه for


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // خروج از حلقه وقتی $i برابر 5 باشد
    }
    echo "مقدار i: " . $i . "<br>";
}
echo "پایان حلقه";
?>

در این مثال، حلقه for از 1 تا 10 تکرار می‌شود. اما هنگامی که مقدار $i به 5 می‌رسد، دستور break اجرا شده و حلقه متوقف می‌شود. بنابراین، خروجی برنامه به صورت زیر خواهد بود:

مقدار i: 1
مقدار i: 2
مقدار i: 3
مقدار i: 4
پایان حلقه

مثال 2: خروج از حلقه while


<?php
$i = 1;
while ($i <= 10) {
    if ($i == 7) {
        break; // خروج از حلقه وقتی $i برابر 7 باشد
    }
    echo "مقدار i: " . $i . "<br>";
    $i++;
}
echo "پایان حلقه";
?>

در این مثال، حلقه while تا زمانی که مقدار $i از 10 بیشتر نشود، تکرار می‌شود. اما هنگامی که مقدار $i به 7 می‌رسد، دستور break اجرا شده و حلقه متوقف می‌شود. خروجی برنامه به صورت زیر خواهد بود:

مقدار i: 1
مقدار i: 2
مقدار i: 3
مقدار i: 4
مقدار i: 5
مقدار i: 6
پایان حلقه

مثال 3: استفاده از break در حلقه‌های تو در تو

دستور break فقط از حلقه داخلی که در آن قرار دارد خارج می‌شود. اگر در حلقه‌های تو در تو (Nested Loops) قرار داشته باشید، break فقط حلقه داخلی را متوقف می‌کند و حلقه بیرونی به کار خود ادامه می‌دهد.


<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($i == 2 && $j == 2) {
            break; // خروج از حلقه داخلی وقتی $i برابر 2 و $j برابر 2 باشد
        }
        echo "i: " . $i . ", j: " . $j . "<br>";
    }
}
?>

در این مثال، حلقه بیرونی سه بار و حلقه داخلی نیز سه بار تکرار می‌شود. اما هنگامی که مقدار $i برابر 2 و مقدار $j برابر 2 باشد، دستور break اجرا شده و فقط حلقه داخلی متوقف می‌شود. خروجی برنامه به صورت زیر خواهد بود:

i: 1, j: 1
i: 1, j: 2
i: 1, j: 3
i: 2, j: 1
i: 3, j: 1
i: 3, j: 2
i: 3, j: 3

دستور continue: پرش به تکرار بعدی

دستور continue برای پرش به تکرار بعدی حلقه استفاده می‌شود. هنگامی که دستور continue در داخل یک حلقه اجرا می‌شود، بقیه کد داخل تکرار جاری نادیده گرفته شده و کنترل برنامه به ابتدای تکرار بعدی منتقل می‌شود.

مثال 1: پرش از تکرارهای زوج در حلقه for


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == 0) {
        continue; // پرش به تکرار بعدی وقتی $i زوج باشد
    }
    echo "مقدار i: " . $i . "<br>";
}
echo "پایان حلقه";
?>

در این مثال، حلقه for از 1 تا 10 تکرار می‌شود. اما هنگامی که مقدار $i زوج باشد، دستور continue اجرا شده و تکرار جاری نادیده گرفته می‌شود. بنابراین، خروجی برنامه به صورت زیر خواهد بود:

مقدار i: 1
مقدار i: 3
مقدار i: 5
مقدار i: 7
مقدار i: 9
پایان حلقه

مثال 2: پرش از تکرارهای خاص در حلقه while


<?php
$i = 1;
while ($i <= 10) {
    if ($i == 3 || $i == 6 || $i == 9) {
        $i++; // افزایش $i قبل از continue برای جلوگیری از حلقه بی نهایت
        continue; // پرش به تکرار بعدی وقتی $i برابر 3، 6 یا 9 باشد
    }
    echo "مقدار i: " . $i . "<br>";
    $i++;
}
echo "پایان حلقه";
?>

در این مثال، حلقه while تا زمانی که مقدار $i از 10 بیشتر نشود، تکرار می‌شود. اما هنگامی که مقدار $i برابر 3، 6 یا 9 باشد، دستور continue اجرا شده و تکرار جاری نادیده گرفته می‌شود. توجه داشته باشید که قبل از اجرای continue، مقدار $i افزایش داده می‌شود تا از ایجاد حلقه بی‌نهایت جلوگیری شود. خروجی برنامه به صورت زیر خواهد بود:

مقدار i: 1
مقدار i: 2
مقدار i: 4
مقدار i: 5
مقدار i: 7
مقدار i: 8
مقدار i: 10
پایان حلقه

مثال 3: استفاده از continue در حلقه‌های تو در تو

مانند break، دستور continue نیز فقط بر حلقه داخلی که در آن قرار دارد تأثیر می‌گذارد. اگر در حلقه‌های تو در تو قرار داشته باشید، continue فقط تکرار جاری حلقه داخلی را نادیده می‌گیرد و حلقه بیرونی به کار خود ادامه می‌دهد.


<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($i == 2 && $j == 2) {
            continue; // پرش به تکرار بعدی حلقه داخلی وقتی $i برابر 2 و $j برابر 2 باشد
        }
        echo "i: " . $i . ", j: " . $j . "<br>";
    }
}
?>

در این مثال، حلقه بیرونی سه بار و حلقه داخلی نیز سه بار تکرار می‌شود. اما هنگامی که مقدار $i برابر 2 و مقدار $j برابر 2 باشد، دستور continue اجرا شده و تکرار جاری حلقه داخلی نادیده گرفته می‌شود. خروجی برنامه به صورت زیر خواهد بود:

i: 1, j: 1
i: 1, j: 2
i: 1, j: 3
i: 2, j: 1
i: 2, j: 3
i: 3, j: 1
i: 3, j: 2
i: 3, j: 3

نتیجه‌گیری

دستورات break و continue ابزارهای مفیدی برای کنترل جریان اجرای حلقه‌ها در PHP هستند. break برای خروج فوری از حلقه و continue برای پرش به تکرار بعدی استفاده می‌شوند. با درک صحیح نحوه عملکرد این دستورات، می‌توانید کدهای کارآمدتر و خواناتری بنویسید و منطق برنامه‌های خود را به طور دقیق‌تری کنترل کنید. استفاده صحیح از این دستورات می‌تواند به بهبود عملکرد و کاهش پیچیدگی کدها کمک شایانی کند.