লুয়া (Lua) প্রোগ্রামিং ভাষায় নেস্টেড কন্ট্রোল স্ট্রাকচার হলো একাধিক কন্ট্রোল স্ট্রাকচার (যেমন if, for, while, ইত্যাদি) একে অপরের মধ্যে যুক্ত হওয়া। নেস্টেড কন্ট্রোল স্ট্রাকচার ব্যবহারের মাধ্যমে কোডের লজিককে আরও জটিল এবং শক্তিশালী করা সম্ভব। এই কাঠামোটি বেশ কার্যকরী, বিশেষত যখন শর্তাধীন বা লুপ লজিককে আরও গভীরে যাচাই করতে হয়।
নেস্টেড কন্ট্রোল স্ট্রাকচার সাধারণত ব্যবহার করা হয় বিভিন্ন শর্ত বা লজিকের উপর ভিত্তি করে কোডের কিছু অংশ চালানোর জন্য, যেটি আরও বিস্তারিতভাবে বর্ণনা করা যাবে।
১. নেস্টেড if স্টেটমেন্ট
একটি if স্টেটমেন্টের মধ্যে আরেকটি if স্টেটমেন্ট থাকে তখন তাকে নেস্টেড if স্টেটমেন্ট বলা হয়। এটি একটি শর্তের অধীনে আরেকটি শর্ত চেক করতে ব্যবহৃত হয়।
উদাহরণ:
x = 10
y = 20
if x > 5 then
if y > 10 then
print("x is greater than 5 and y is greater than 10")
else
print("x is greater than 5 but y is not greater than 10")
end
else
print("x is not greater than 5")
endএখানে, প্রথম if স্টেটমেন্টটি চেক করছে x > 5, যদি শর্ত সত্য হয়, তবে ভিতরের if স্টেটমেন্ট চেক করবে y > 10।
২. নেস্টেড for লুপ
for লুপের মধ্যে আরেকটি for লুপ থাকা অবস্থাকে নেস্টেড for লুপ বলা হয়। এটি সাধারণত একাধিক ডাটা সেটের উপর কাজ করার জন্য ব্যবহৃত হয়, যেমন ২ ডি ম্যাট্রিক্সের উপাদান অ্যাক্সেস করা।
উদাহরণ:
for i = 1, 3 do
for j = 1, 3 do
print("i = " .. i .. ", j = " .. j)
end
endএখানে প্রথম for লুপটি ১ থেকে ৩ পর্যন্ত চলে এবং তার মধ্যে থাকা দ্বিতীয় for লুপটি ১ থেকে ৩ পর্যন্ত চলে। এটি একটি ৩x৩ গ্রিডের মতো আউটপুট তৈরি করবে।
আউটপুট:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3৩. নেস্টেড while লুপ
while লুপের মধ্যে আরেকটি while লুপ থাকা অবস্থাকে নেস্টেড while লুপ বলা হয়। এটি সাধারণত একাধিক শর্তের অধীনে চলতে থাকে, যেমন একটি জটিল শর্ত পূরণের জন্য একাধিক পর্যায় চেক করা।
উদাহরণ:
i = 1
while i <= 3 do
j = 1
while j <= 3 do
print("i = " .. i .. ", j = " .. j)
j = j + 1
end
i = i + 1
endএখানে প্রথম while লুপটি চলতে থাকে যতক্ষণ না i <= 3, এবং দ্বিতীয় while লুপটি প্রতিবার i ইনক্রিমেন্ট হওয়ার সময় ১ থেকে ৩ পর্যন্ত চলবে। এটি একইভাবে ৩x৩ গ্রিড আউটপুট দিবে।
আউটপুট:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3৪. নেস্টেড repeat-until লুপ
repeat-until লুপের মধ্যে আরেকটি repeat-until লুপ থাকা অবস্থাকে নেস্টেড repeat-until লুপ বলা হয়। এটি সাধারণত যখন একাধিক শর্ত যাচাই করা হয় এবং অন্তত একবার লুপের শরীর চালানোর প্রয়োজন হয়।
উদাহরণ:
i = 1
repeat
j = 1
repeat
print("i = " .. i .. ", j = " .. j)
j = j + 1
until j > 3
i = i + 1
until i > 3এখানে প্রথম repeat-until লুপটি চলবে যতক্ষণ না i > 3, এবং প্রতি পুনরাবৃত্তিতে, দ্বিতীয় repeat-until লুপটি চলবে যতক্ষণ না j > 3। এটি ৩x৩ গ্রিডের মতো আউটপুট প্রদান করবে।
আউটপুট:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3৫. নেস্টেড কন্ট্রোল স্ট্রাকচার এর ব্যবহার
নেস্টেড কন্ট্রোল স্ট্রাকচার প্রোগ্রামে জটিল লজিক বাস্তবায়ন করতে সাহায্য করে। এটি যখন কোনো নির্দিষ্ট শর্ত পূরণের জন্য একাধিক চেক করা হয়, তখন খুবই কার্যকরী হয়। এই কাঠামোটি গেম ডেভেলপমেন্ট, ডেটা প্রসেসিং, ম্যাট্রিক্স ম্যানিপুলেশন, এবং অন্যান্য উন্নত অ্যাপ্লিকেশন তৈরির ক্ষেত্রে বিশেষভাবে ব্যবহৃত হয়।
উদাহরণ: নেস্টেড if এবং for লুপ
for i = 1, 5 do
if i % 2 == 0 then
print(i .. " is even")
else
print(i .. " is odd")
end
endএখানে, প্রথমে for লুপটি ১ থেকে ৫ পর্যন্ত চলবে, এবং তারপর if স্টেটমেন্টটি চেক করবে i ইভেন নাকি অড। এটি ১ থেকে ৫ পর্যন্ত সকল সংখ্যার জন্য ইভেন বা অড কিনা তা প্রিন্ট করবে।
আউটপুট:
1 is odd
2 is even
3 is odd
4 is even
5 is oddসারসংক্ষেপ
লুয়া প্রোগ্রামিং ভাষায় নেস্টেড কন্ট্রোল স্ট্রাকচার খুবই গুরুত্বপূর্ণ একটি কনসেপ্ট যা জটিল শর্তাবলী এবং লজিক বাস্তবায়নে ব্যবহৃত হয়। এটি একাধিক কন্ট্রোল স্ট্রাকচার যেমন if, for, while, repeat-until ইত্যাদি একে অপরের মধ্যে ঢোকানো (nesting) হয়, যা ডেভেলপারকে আরো নমনীয় এবং জটিল প্রোগ্রাম লেখার সুযোগ দেয়।
Read more