Skill

Control Flow Statements (নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস)

লুয়া (Lua) - Computer Programming

308

নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements) প্রোগ্রামে নির্দিষ্ট অংশের কোড কার্যকর করার জন্য ব্যবহার করা হয়। এটি শর্তের উপর ভিত্তি করে কোডের নির্দিষ্ট অংশ চালানোর সুযোগ দেয়। লুয়া (Lua) প্রোগ্রামিং ভাষায় কয়েকটি মূল নিয়ন্ত্রণ প্রবাহ স্টেটমেন্ট রয়েছে, যেমন: if, else, elseif, while, for, এবং repeat-until। এই স্টেটমেন্টগুলি ব্যবহার করে আমরা কোডের প্রবাহ নিয়ন্ত্রণ করতে পারি।


১. if - else স্টেটমেন্ট (Conditional Statements)

if স্টেটমেন্ট একটি শর্তের ভিত্তিতে কোড চালায়। else এবং elseif ব্যবহার করে বিভিন্ন শর্তের উপর ভিত্তি করে একাধিক কোড ব্লক কার্যকর করা যায়।

সিনট্যাক্স:

if condition then
   -- কোড ব্লক ১
elseif another_condition then
   -- কোড ব্লক ২
else
   -- কোড ব্লক ৩
end

উদাহরণ:

x = 10

if x > 5 then
    print("x is greater than 5")
elseif x == 5 then
    print("x is equal to 5")
else
    print("x is less than 5")
end

এখানে, যদি x এর মান ৫ এর বেশি হয়, তাহলে প্রথম কোড ব্লক কার্যকর হবে; অন্যথায়, দ্বিতীয় শর্তে গিয়ে কোড চালানো হবে, এবং সবশেষে else অংশটি কাজ করবে যদি পূর্বের শর্তগুলো মিথ্যা হয়।


২. while লুপ (While Loop)

while লুপটি একটি শর্তের ভিত্তিতে কোড ব্লক বারবার চালায়, যতক্ষণ না শর্তটি মিথ্যা হয়।

সিনট্যাক্স:

while condition do
   -- কোড ব্লক
end

উদাহরণ:

x = 1

while x <= 5 do
    print(x)
    x = x + 1
end

এখানে, লুপটি ১ থেকে ৫ পর্যন্ত x এর মান আউটপুট করবে। যখন x ৫ এর চেয়ে বড় হবে, তখন লুপ থেমে যাবে।


৩. for লুপ (For Loop)

for লুপটি একটি নির্দিষ্ট সংখ্যক বার কোড চালানোর জন্য ব্যবহৃত হয়। লুয়া ভাষায় দুটি ধরনের for লুপ রয়েছে: সিকোয়েন্সিয়াল for এবং গিনেরিক for

সিকোয়েন্সিয়াল for লুপ:

এটি একটি নির্দিষ্ট সীমার মধ্যে কাজ করে, যেখানে শুরু, শেষ এবং স্টেপ মান দেওয়া হয়।

সিনট্যাক্স:

for i = start, stop, step do
   -- কোড ব্লক
end

উদাহরণ:

for i = 1, 5 do
    print(i)
end

এখানে, i ১ থেকে ৫ পর্যন্ত মান গ্রহণ করবে এবং প্রতি বার কোড ব্লকটি চালাবে। আউটপুট হবে:

1
2
3
4
5

গিনেরিক for লুপ:

এটি টেবিল বা অন্যান্য ডাটা স্ট্রাকচারের উপর লুপ চালানোর জন্য ব্যবহৃত হয়।

উদাহরণ:

fruits = {"Apple", "Banana", "Cherry"}

for i, fruit in ipairs(fruits) do
    print(i, fruit)
end

এখানে, fruits টেবিলের উপর লুপ চলবে এবং প্রতিটি উপাদান এবং তার ইনডেক্স প্রিন্ট করবে। আউটপুট হবে:

1 Apple
2 Banana
3 Cherry

৪. repeat-until লুপ (Repeat-Until Loop)

repeat-until লুপটি while লুপের মতো কাজ করে, তবে এর মধ্যে শর্তটি লুপের শেষে পরীক্ষা করা হয়। এটি কমপক্ষে একবার কোড ব্লক চালানোর গ্যারান্টি দেয়।

সিনট্যাক্স:

repeat
   -- কোড ব্লক
until condition

উদাহরণ:

x = 1

repeat
    print(x)
    x = x + 1
until x > 5

এখানে, x ১ থেকে ৫ পর্যন্ত প্রিন্ট হবে এবং পরবর্তী শর্তটি পরীক্ষার পর x > 5 হলে লুপ থেমে যাবে।


৫. break এবং continue (Loop Control Statements)

  • break: লুপের মধ্যে break ব্যবহার করে লুপের চলমান অবস্থান থেকে বের হয়ে আসা যায়।
  • continue: continue ব্যবহার করলে লুপের পরবর্তী পুনরাবৃত্তি চালানো হয়, বর্তমান পুনরাবৃত্তি এড়িয়ে।

উদাহরণ (break):

for i = 1, 10 do
    if i == 5 then
        break
    end
    print(i)
end

এখানে, যখন i এর মান ৫ হবে, তখন লুপটি থেমে যাবে। আউটপুট হবে:

1
2
3
4

উদাহরণ (continue):

for i = 1, 10 do
    if i == 5 then
        continue
    end
    print(i)
end

এখানে, যখন i এর মান ৫ হবে, তখন কোডটির বাকি অংশ স্কিপ করে পরবর্তী পুনরাবৃত্তিতে চলে যাবে। আউটপুট হবে:

1
2
3
4
6
7
8
9
10

সারসংক্ষেপ

লুয়া ভাষায় নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস কোডের কার্যকারিতা এবং লজিক নিয়ন্ত্রণ করতে ব্যবহৃত হয়। if, else, elseif, while, for, repeat-until, এবং break/continue স্টেটমেন্টগুলি কোডের প্রবাহ নিয়ন্ত্রণে সহায়তা করে এবং ডেভেলপারদের জন্য কোডের কার্যক্রম সহজ করে তোলে।

Content added By

লুয়া ভাষায় কন্ডিশনাল স্টেটমেন্ট (যেমন if, elseif, else) ব্যবহার করে আপনি কোডে শর্ত ভিত্তিক লজিক প্রয়োগ করতে পারেন। এগুলো আপনাকে নির্দিষ্ট শর্ত অনুযায়ী ভিন্ন ভিন্ন কোড এক্সিকিউট করতে সহায়তা করে।


১. if

if স্টেটমেন্টটি একটি শর্ত পরীক্ষা করে এবং সেই শর্তটি সত্য (true) হলে কোডের একটি ব্লক এক্সিকিউট করে।

সিনট্যাক্স:

if condition then
    -- কোড এক্সিকিউট হবে যদি condition সত্য হয়
end

উদাহরণ:

x = 10

if x > 5 then
    print("x is greater than 5")   -- আউটপুট: x is greater than 5
end

এখানে, x যদি ৫ এর চেয়ে বড় হয়, তবে "x is greater than 5" মেসেজটি প্রিন্ট হবে।


২. elseif

elseif ব্যবহৃত হয় if এর পরবর্তী শর্ত হিসেবে, যখন প্রথম if শর্ত মিথ্যা (false) হয়। এটি একটি বা একাধিক অতিরিক্ত শর্ত পরীক্ষা করতে ব্যবহৃত হয়।

সিনট্যাক্স:

if condition1 then
    -- condition1 সত্য হলে কোড এক্সিকিউট হবে
elseif condition2 then
    -- condition2 সত্য হলে কোড এক্সিকিউট হবে
end

উদাহরণ:

x = 10

if x < 5 then
    print("x is less than 5")
elseif x == 10 then
    print("x is equal to 10")   -- আউটপুট: x is equal to 10
else
    print("x is greater than 5")
end

এখানে, প্রথম শর্ত (x < 5) মিথ্যা হওয়ায় elseif শর্ত পরীক্ষা করা হয় এবং x == 10 শর্ত সত্য হওয়ায় "x is equal to 10" প্রিন্ট হবে।


৩. else

else ব্যবহৃত হয় যখন পূর্ববর্তী if বা elseif শর্তগুলো সবই মিথ্যা (false) হয়। এটি একটি ডিফল্ট কোড ব্লক যা এক্সিকিউট হবে যদি কোনও শর্ত সত্য না হয়।

সিনট্যাক্স:

if condition1 then
    -- কোড এক্সিকিউট হবে যদি condition1 সত্য হয়
else
    -- কোড এক্সিকিউট হবে যদি কোনও শর্ত সত্য না হয়
end

উদাহরণ:

x = 3

if x > 5 then
    print("x is greater than 5")
else
    print("x is less than or equal to 5")  -- আউটপুট: x is less than or equal to 5
end

এখানে, x এর মান ৩ হওয়ায় প্রথম শর্ত (x > 5) মিথ্যা হওয়ায় else ব্লক এক্সিকিউট হয়ে "x is less than or equal to 5" মেসেজটি প্রিন্ট হবে।


সারসংক্ষেপ

লুয়া ভাষায় কন্ডিশনাল স্টেটমেন্টস (যেমন if, elseif, else) আপনাকে শর্তের ভিত্তিতে কোডের ভিন্ন ভিন্ন অংশ এক্সিকিউট করতে সাহায্য করে। এগুলোর ব্যবহার কিভাবে শর্তের ওপর নির্ভর করে কোডের কার্যক্রম পরিচালনা করতে হয় তা সহজে বুঝতে সাহায্য করে।

  • if: একটি শর্ত পরীক্ষা করে, যদি শর্ত সত্য হয়।
  • elseif: প্রথম if শর্ত মিথ্যা হলে, অন্য শর্ত পরীক্ষা করে।
  • else: যদি সমস্ত পূর্ববর্তী শর্ত মিথ্যা হয়, তবে ডিফল্ট কোড এক্সিকিউট হয়।

এই কন্ডিশনাল স্টেটমেন্টগুলোর সাহায্যে লুয়া কোডে শর্তসাপেক্ষ লজিক প্রয়োগ করা সম্ভব।

Content added By

লুয়া (Lua) ভাষায় লুপিং স্টেটমেন্টস এমন কন্ট্রোল স্ট্রাকচার যা কোডের নির্দিষ্ট অংশ একাধিকবার চালানোর জন্য ব্যবহৃত হয়। লুয়া ভাষায় তিন ধরনের লুপ রয়েছে: while, repeat, এবং **for**। এই লুপগুলি ব্যবহার করে আপনি কোনো শর্ত পূরণ না হওয়া পর্যন্ত অথবা নির্দিষ্ট সংখ্যক বার কোডের অংশ পুনরায় চালাতে পারেন।

এই টিউটোরিয়ালে আমরা লুয়া ভাষার তিনটি প্রধান লুপিং স্টেটমেন্ট: while, repeat, এবং for এর ব্যবহার এবং উদাহরণ দেখব।


১. while লুপ

while লুপটি একটি শর্ত পূর্ণ না হওয়া পর্যন্ত একাধিকবার একটি কোড ব্লক চালায়। এটি একটি প্রাক-শর্ত লুপ (pre-test loop), অর্থাৎ লুপের শরীর প্রথমে শর্ত যাচাই করে তারপর এক্সিকিউট হয়।

সিনট্যাক্স:

while condition do
    -- কোড ব্লক
end

উদাহরণ:

x = 1

while x <= 5 do
    print(x)  -- আউটপুট: 1 2 3 4 5
    x = x + 1
end

এখানে, x এর মান ১ থেকে শুরু হয়ে ৫ পর্যন্ত বেড়ে যাবে এবং যতক্ষণ না x এর মান ৫-এর বেশি হচ্ছে, ততক্ষণ এই লুপটি চলতে থাকবে।


২. repeat লুপ

repeat লুপটি একটি পোস্ট-শর্ত লুপ (post-test loop), অর্থাৎ লুপের শরীর একবার চলে এবং তারপর শর্ত যাচাই করা হয়। তাই, repeat লুপটি অন্তত একবার চলবেই, শর্ত পূর্ণ হোক বা না হোক।

সিনট্যাক্স:

repeat
    -- কোড ব্লক
until condition

উদাহরণ:

x = 1

repeat
    print(x)  -- আউটপুট: 1 2 3 4 5
    x = x + 1
until x > 5

এখানে, লুপটি প্রথমে x এর মান ১ দিয়ে চালু হয় এবং পরে শর্ত যাচাই করা হয় (x > 5)। যতক্ষণ না শর্ত পূর্ণ হচ্ছে, লুপটি চলতে থাকে।


৩. for লুপ

for লুপটি একটি নির্দিষ্ট সংখ্যক বার লুপ চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত দুটি ধরনের হয়:

  • সংখ্যাতীত লুপ (Numeric for loop): একটি নির্দিষ্ট পরিসরের মধ্যে কাজ করতে ব্যবহৃত।
  • জেনেরেটর লুপ (Generic for loop): যখন আপনি কোন ডাটা স্ট্রাকচার বা সিরিজে iterate করতে চান।

৩.১. সংখ্যাতীত for লুপ

এই লুপটি একটি নির্দিষ্ট পরিসরের মধ্যে চলতে থাকে। এটি একটি ইন্টিজার রেঞ্জের মধ্যে লুপিং করে।

সিনট্যাক্স:

for i = start, stop, step do
    -- কোড ব্লক
end

উদাহরণ:

for i = 1, 5 do
    print(i)  -- আউটপুট: 1 2 3 4 5
end

এখানে, i ১ থেকে ৫ পর্যন্ত বেড়ে যাবে এবং প্রতি বার i এর মান প্রিন্ট হবে।

৩.২. জেনেরেটর for লুপ

এই লুপটি সাধারণত টেবিল বা অন্যান্য ডেটা স্ট্রাকচারের উপর লুপ করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট স্ট্রাকচারে চলতে থাকে এবং আপনি একটি কাস্টম ইটারেটর ব্যবহার করতে পারেন।

উদাহরণ:

days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

for i, day in ipairs(days) do
    print(i, day)
end

এখানে, ipairs একটি ইটারেটর, যা days টেবিলের মধ্যে আইটেমগুলির উপর লুপ চালায় এবং প্রতি ইটারেশনে ইনডেক্স (i) এবং ভ্যালু (day) প্রদান করে।


সারসংক্ষেপ

লুয়া ভাষায় লুপিং স্টেটমেন্টস কোডের নির্দিষ্ট অংশ একাধিকবার চালানোর জন্য ব্যবহৃত হয়। এর মধ্যে তিনটি প্রধান ধরনের লুপ রয়েছে:

  • while লুপ: শর্ত সত্য হলে কোড চালায় (প্রাক-শর্ত লুপ)।
  • repeat লুপ: কোড প্রথমে একবার চালায় এবং তারপর শর্ত যাচাই করে (পোস্ট-শর্ত লুপ)।
  • for লুপ: নির্দিষ্ট সংখ্যা পর্যন্ত বা একটি ডেটা স্ট্রাকচারের উপরে লুপ চালায় (সংখ্যাতীত ও জেনেরেটর লুপ)।

এই লুপগুলি কোডের পুনরাবৃত্তির জন্য কার্যকরভাবে ব্যবহার করা যায় এবং ডেভেলপারদের কর্মক্ষমতা বৃদ্ধি করতে সাহায্য করে।

Content added By

লুয়া প্রোগ্রামিং ভাষায়, break এবং continue অপারেটরগুলোর মতো সরাসরি কিওয়ার্ডগুলি নেই, কিন্তু আপনি এই ধরনের আচরণ অর্জন করার জন্য কিছু বিকল্প কৌশল ব্যবহার করতে পারেন। এই টিউটোরিয়ালে আমরা break এবং continue এর বিকল্প ব্যবহারের কৌশল আলোচনা করব।


১. break অপারেটরের বিকল্প

লুয়া ভাষায়, break অপারেটরটি একটি লুপের মধ্যে ব্যবহৃত হয় এবং লুপের কার্যক্রম তৎক্ষণাৎ বন্ধ করে দেয়। লুয়া ভাষায় break এর সরাসরি সমর্থন নেই, তবে আপনি return বা goto ব্যবহার করে এই আচরণ অর্জন করতে পারেন।

উদাহরণ: break এর বিকল্প হিসাবে return

যখন আপনি একটি ফাংশনের মধ্যে লুপ চালাচ্ছেন এবং সেখানে break ব্যবহার করতে চান, তখন return ব্যবহার করতে পারেন লুপ বন্ধ করার জন্য।

function findEvenNumber()
    for i = 1, 10 do
        if i % 2 == 0 then
            print("Found even number: " .. i)
            return  -- এটি লুপ শেষ করবে
        end
    end
end

findEvenNumber()  -- আউটপুট: Found even number: 2

এখানে, return ব্যবহার করে ফাংশন থেকে বের হয়ে যাওয়ার ফলে লুপ শেষ হয়ে যায়, যা break এর মতো আচরণ তৈরি করে।

উদাহরণ: break এর বিকল্প হিসাবে goto

লুয়া ভাষায় goto ব্যবহার করে আপনি নির্দিষ্ট স্থানে লাফ দিতে পারেন, যা break এর বিকল্প হিসাবে ব্যবহৃত হতে পারে।

function checkEvenNumbers()
    for i = 1, 10 do
        if i == 5 then
            goto skip -- লুপ থেকে বের হয়ে গিয়ে সরাসরি পরবর্তী লুপের দিকে চলে যাবে
        end
        print(i)
    end

    ::skip::  -- এই স্থানে লাফ করা হবে
end

checkEvenNumbers()  
-- আউটপুট: 1 2 3 4

এখানে, goto skip লাইনটি লুপের ভিতরে i == 5 হলে লুপ থেকে বেরিয়ে গিয়ে skip লেবেলটি এক্সিকিউট করবে, যা break অপারেটরের মতো আচরণ করে।


২. continue অপারেটরের বিকল্প

লুয়া ভাষায় continue অপারেটরটি লুপের পরবর্তী ইটারেশনে চলে যেতে ব্যবহৃত হয়। যদিও সরাসরি continue অপারেটর নেই, তবে আপনি goto ব্যবহার করে এই আচরণ তৈরি করতে পারেন।

উদাহরণ: continue এর বিকল্প হিসাবে goto

লুয়া ভাষায় goto ব্যবহার করে আপনি লুপের পরবর্তী পুনরাবৃত্তিতে চলে যেতে পারেন, যা continue এর মতো আচরণ করতে পারে।

for i = 1, 10 do
    if i % 2 == 0 then
        goto continue_loop  -- যদি সংখ্যা even হয়, তাহলে পরবর্তী পুনরাবৃত্তিতে চলে যাবে
    end
    print(i)  -- শুধুমাত্র odd সংখ্যাগুলো প্রিন্ট হবে
    ::continue_loop::
end

এখানে, goto continue_loop ব্যবহার করে লুপের মধ্যে if শর্ত মেনে গেলে পরবর্তী পুনরাবৃত্তিতে চলে যায়, যা continue অপারেটরের মতো কাজ করে।


৩. সার্বিক ব্যবহার

এভাবে আপনি break এবং continue এর বিকল্প কৌশল হিসেবে return এবং goto ব্যবহার করতে পারেন, যা লুয়া ভাষায় লুপের মধ্যে শর্তভিত্তিক প্রবাহ নিয়ন্ত্রণের জন্য অত্যন্ত কার্যকরী।

  • return ফাংশনের মধ্যে দ্রুত বেরিয়ে যাওয়ার জন্য ব্যবহৃত হতে পারে।
  • goto ব্যবহার করে আপনি নির্দিষ্ট লেবেলে লাফ দিতে পারেন, যা শর্তভিত্তিক কোড প্রবাহ নিয়ন্ত্রণ করতে সহায়তা করে।

সারসংক্ষেপ

লুয়া ভাষায় break এবং continue অপারেটরগুলো সরাসরি সমর্থিত নয়, তবে আপনি return এবং goto ব্যবহার করে একই কার্যক্রম অর্জন করতে পারেন। return ব্যবহৃত হয় যখন আপনি একটি ফাংশনের ভিতরে দ্রুত বেরিয়ে যেতে চান এবং goto ব্যবহৃত হয় কোডের নির্দিষ্ট অংশে লাফ দিতে, যা লুপের পরবর্তী ইটারেশনে চলে যাওয়ার জন্য সহায়ক।

Content added By

লুয়া (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) হয়, যা ডেভেলপারকে আরো নমনীয় এবং জটিল প্রোগ্রাম লেখার সুযোগ দেয়।

Content added By
Promotion

Are you sure to start over?

Loading...