🔸 کد ما به این صورت است:
for ($i = 1; $i < 3; $i++) {
echo "Outer $i\n";
for ($j = 1; $j < 3; $j++) {
echo "\tInner $j\n";
if ($j == 1) break 2;
if ($j == 2) continue 2;
}
}🔹 و خروجی آن گزینه C، یعنی:
Outer 1
Inner 1
⁉️ اما چرا؟
⚜️ بیایید ابتدا با دستورات break، و continue به صورت دقیق تر آشنا شویم.
🔻
break N چیست؟break به صورت معمول از یک حلقه خارج میشود. اما اگر بنویسیم break 2، به معنی خروج از دو سطح حلقه است.
یعنی در این کد:
if ($j == 1) break 2;
اگر شرط
$j == 1 برقرار شود، هم از حلقه داخلی و هم خارجی خارج میشود. یعنی اجرای کل حلقهها متوقف میشود.🔻
continue N چیست؟continue معمولاً ادامه حلقه جاری را رها میکند و میرود سراغ تکرار بعدی همان حلقه. اما continue 2 میگوید برو سراغ تکرار بعدی حلقه سطح دوم.
در این کد:
if ($j == 2) continue 2;
اگر این شرط اجرا شود، کل حلقه داخلی متوقف میشود و حلقه بیرونی به تکرار بعدی میرود.
🔸 در هر دو حالت، عدد بعد از break یا continue مشخص میکند که چند سطح از حلقه را تحت تأثیر قرار میدهد.
⭕️ نکته: عدد بعد از break یا continue باید به تعداد سطوح حلقه باشد.
⚜️ حالا بیایید ببینیم این کد دقیقاً چطور اجرا میشود:
اولین دور حلقه بیرونی: $i = 1
Outer 1
اولین دور حلقه داخلی: $j = 1
Inner 1
سپس:
if ($j == 1) break 2;
شرط درست است، پس اجرای break 2 انجام میشود. یعنی از هر دو حلقه خارج میشویم و برنامه پایان مییابد.
⭕️ نکته: دستور continue هرگز اجرا نخواهد شد.
#PHP
@AmirhDeveloper
.