PHP-তে continue ইনস্ট্রাকশন
break ইনস্ট্রাকশন ছাড়াও, যা লুপের কাজ শেষ করে,
continue ইনস্ট্রাকশনও রয়েছে, যা লুপের একটি নতুন পুনরাবৃত্তি শুরু করে।
কোড সরলীকরণের জন্য এই ইনস্ট্রাকশনটি কখনও কখনও দরকারী হতে পারে,
যদিও প্রায় সবসময়ই এটি ছাড়াই সমস্যার সমাধান করা যায়।
আসুন একটি ব্যবহারিক উদাহরণ দেখি।
ধরা যাক আমাদের কাছে সংখ্যা সহ একটি অ্যারে দেওয়া আছে।
আসুন এটি একটি লুপ দিয়ে পুনরাবৃত্তি করি এবং যেসব সংখ্যা 2 দ্বারা বিভাজ্য,
সেগুলিকে বর্গ করি এবং স্ক্রিনে প্রদর্শন করি, এবং যেসব সংখ্যা 3 দ্বারা বিভাজ্য,
সেগুলিকে ঘনক করি এবং স্ক্রিনে প্রদর্শন করি।
বর্ণিত কাজের সমাধান এখানে:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
echo $res;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
echo $res;
}
}
?>
আপনি দেখতে পাচ্ছেন, লাইন echo $res
দুইবার পুনরাবৃত্তি হয়েছে। আসুন এটিকে
if-এর বাইরে নিয়ে আসি, এভাবে:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
}
echo $res; // শর্তের বাইরে আউটপুট নিয়ে এসেছে
}
?>
যাইহোক, এখন আমাদের স্ক্রিপ্ট কিছুটা ভিন্নভাবে কাজ করে:
এটি দেখা যাচ্ছে যে সাধারণ উপাদানগুলির জন্যও,
যেগুলি আমাদের if-এর মাধ্যমে প্রক্রিয়া করা হয়নি,
সেগুলির জন্যও ভেরিয়েবল $res-কে
স্ক্রিনে আউটপুট করা হবে, যা আমাদের কাজের শর্ত অনুসারে আমাদের
দরকার নেই।
সমস্যাটি ঠিক করি, আমাদের if-এ
আরেকটি else শর্ত যোগ করে, যা
2 এবং 3 দ্বারা বিভাজ্য নয় এমন উপাদানগুলির জন্য কাজ করবে,
এবং সেখানে continue ইনস্ট্রাকশন কল করব,
যা অবিলম্বে আমাদেরকে লুপের একটি নতুন পুনরাবৃত্তিতে নিয়ে যাবে:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
} else {
continue; // লুপের নতুন পুনরাবৃত্তিতে যাবে
}
echo $res; // কার্যকর হবে যদি 2 বা 3 দ্বারা বিভাজ্য হয়
}
?>
একটি লুপ লিখুন যা শুধুমাত্র 1 থেকে 100 পর্যন্ত
জোড় সংখ্যাগুলি প্রদর্শন করে,
continue ব্যবহার করে বিজোড় সংখ্যাগুলি ডিলিট করে।