রিদওয়ান বিন শামীম
বিভিন্ন কাজের জন্য লুপ তৈরি ও ব্যবহার করার সাথে আমরা সবাই পরিচিত। কখনো কখনো লুপ এড়ানো বা এর পুনরাবৃত্তি করা প্রয়োজন হয়ে পরে।
সেল লুপ নিয়ন্ত্রণের জন্য দুটি স্টেটমেন্ট নিয়ে আমরা আলোচনা করব।
- ব্রেক স্টেটমেন্ট
- কন্টিনিউ স্টেটমেন্ট
ইনফিনিট লুপ
সব লুপের শুরু বা শেষ ও একটি সীমিত ক্রিয়াসীমা থাকে, নির্ধারিত শর্তে পৌঁছে এর ক্রিয়াসীমা শেষ হয়। সেই নির্ধারিত শর্তে না পৌঁছলে লুপ স্থায়ী হয়ে থেকে যেতে পারে। এধরনের লুপ ইনফিনিট লুপ নামে পরিচিত।
নিচের উদাহরণে জিরো থেকে ৯ পর্যন্ত নাম্বার প্রদর্শনের নিমিত্তে লুপের প্রয়োগ দেখানো হল।
#!/bin/sh a=10 while [ $a -ge 10 ] do echo $a a=`expr $a + 1` done
এই লুপ সারা জীবন স্থায়ী হবে কারণ a সবসময় ১০এর চেয়ে বড় বা এর সমান, এটি কখনো ১০ এরচেয়ে ছোট হবে না।
ব্রেক স্টেটমেন্ট
ব্রেক স্টেটমেন্ট সম্পূর্ণ লুপের কার্যক্রম থামাতে ব্যবহৃত হয়, এর পূর্ব পর্যন্ত সকল কোডের কার্যক্রম সম্পন্ন হওয়ার পর।
সিনট্যাক্স
লুপের কার্যক্রম থামাতে নিম্নোক্ত ব্রেক স্টেটমেন্ট ব্যবহার করা হয়,
break
নেস্টেড লুপ থেকে বেরিয়ে যেতে যে ব্রেক কম্যান্ড ব্যবহার করা হয় তা হল,
break n
n তম লুপ থেকে বেরিয়ে যাওয়ার জন্য এই কোড ব্যবহৃত হয়।
যেমন
#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a if [ $a -eq 5 ] then break fi a=`expr $a + 1` done
উপরের কোড যে ফলাফল দেখাবে তা হল,
0 1 2 3 4 5
এই উদাহরণের উভয় লুপের ক্ষেত্রে পরিবর্তন হবে যদি var1 দুইয়ের সমান ও var2 শূন্যের সমান হয়।
#!/bin/sh for var1 in 1 2 3 do for var2 in 0 5 do if [ $var1 -eq 2 -a $var2 -eq 0 ] then break 2 else echo "$var1 $var2" fi done done
শর্ত পূরণ হলে ইনার লুপ ও আউটার লুপ বিলুপ্ত করে দেয়া হয়,
1 0 1 5
কন্টিনিউ স্টেটমেন্ট
লুপের পুনরাবৃত্তির ক্ষেত্রে কন্টিনিউ স্টেটমেন্ট প্রয়োগ করা সম্ভব, এর সিনট্যাক্স হল,
continue
নেস্টেড লুপ থেকে বেরিয়ে যেতে যে ইন্টেজার আর্গুমেন্ট ব্যবহার করা হয় কন্টিনিউ কমান্ডে তা হল,
continue n
n তম লুপের ক্ষেত্রে এই কোড ব্যবহৃত হয়।
উদাহরণ
নিচের উদাহরণে কন্টিনিউ স্টেটমেন্টের এই কোড ব্যবহার করা হয়,
#!/bin/sh NUMS="1 2 3 4 5 6 7" for NUM in $NUMS do Q=`expr $NUM % 2` if [ $Q -eq 0 ] then echo "Number is an even number!!" continue fi echo "Found odd number" done
এটি নিচের মতো ফলাফল দেখাবে,
Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number