JuktiLab Logo
যুক্তি ল্যাবJukti Lab
যুক্তিকোড এডিটরঅনুশীলন

টিউটোরিয়াল

সূচণাIdentifier/নির্দেশকবাক্য / Stringঅগ্রাধিকার / Precedenceলজিক্যাল অপারেটরতুলনা / Comparisonমান সংরক্ষণ/Assignment OperatorsArithmetic Operators/গাণিতিক অপারেটরData Type/তথ্যের ধরণInput/ইনপুটReal Example/বাস্তব উদাহরণMulti Variable/একাধিক ভেরিয়েবলDeclaration/নামকরণComment/কমেন্টNew Line/নতুন লাইনNumber Output/সংখ্যা আউটপুটOutput/আউটপুটStatements/বিবৃতি
Syntax/গঠন বাক্য জোড়া লাগানোসংখ্যা এবং বাক্যবাক্যের আকারAccess Stringsইউজার ইনপুটলজিক্যাল বুলিয়ানযুক্তি শর্তাবলীলজিক্যাল অপারেটরশর্তের উদাহরণযুক্তি ফর লুপযুক্তি নেস্টেড লুপশর্তের ব্যবহারউন্নত ফর লুপ

যুক্তি টিউটোরিয়াল

সিনট্যাক্স গাইডউন্নত ফর লুপলুপ বাস্তব উদাহরণব্রেক ও কন্টিনিউতালিকা (Arrays) বেসিকতালিকা ও লুপতালিকা বাস্তব উদাহরণবহুমাত্রিক তালিকাফাংশন বেসিকফাংশন প্যারামিটারফাংশন রিটার্ন ভ্যালুফাংশন রিকার্শনফাংশন স্কোপওওপি (OOP) বেসিকওওপি কনস্ট্রাক্টরওওপি এক্সেস মডিফায়ারওওপি ইনহেরিটেন্স'নিজ' (This) কিউওয়ার্ডতারিখ ও সময়ওওপি পলিমরফিজমওওপি এনক্যাপসুলেশন'উৎস' (Super) কিউওয়ার্ডমাল্টিপল ইনহেরিটেন্সমাল্টি-লেভেল ইনহেরিটেন্সঅ্যাডভান্সড ফিচার
যুক্তি
Statements/বিবৃতি

Statements/বিবৃতি

Meta Description

Jukti স্টেটমেন্ট গাইড

Jukti-এ আউটপুট, ইনপুট, কন্ডিশন, লুপ, জাম্প (break/continue) এবং OOP—সব কিছুর জন্য সুন্দর স্টেটমেন্ট স্ট্রাকচার আছে। এই গাইডে আমরা এগুলো উদাহরণসহ দেখবো—আর যেখানে দরকার, তোমার ইন্টারপ্রেটারের ভেতরের লজিক (parser/interpreter flow) অনুযায়ী ব্যাখ্যাও দেবো।

Note

এই গাইডের সিনট্যাক্স ব্যাখ্যা তোমার বর্তমান Parser/Interpreter-এ যেভাবে স্টেটমেন্ট পার্স ও এক্সিকিউট হয়—সেই আচরণকে মাথায় রেখে লেখা।

১) আউটপুট স্টেটমেন্ট — দেখাও

স্ক্রিনে কিছু দেখাতে দেখাও ব্যবহার হয়। একাধিক মান এক লাইনে প্রিন্ট করতে >> (CHAIN) অপারেটর দিয়ে এক্সপ্রেশনগুলো চেইন করা যায়। Parser এই চেইনগুলোকে একসাথে ধরে PrintNode(expressions) বানায়। :contentReference[oaicite:0]{index=0}

দেখাও "হ্যালো বাংলাদেশ!";
ধরি ফলাফল = ৪২;
দেখাও "ফলাফল: " >> ফলাফল >> " টাকা";

নতুন লাইনের জন্য আলাদা স্টেটমেন্ট আছে: নতুনলাইন। এটি Interpreter-এ সরাসরি newline প্রিন্ট/আউটপুটে যোগ করে।

দেখাও "লাইন-১";
নতুনলাইন;
দেখাও "লাইন-২";

২) ইনপুট স্টেটমেন্ট — জিজ্ঞেস / (ভ্যালু ইনপুট)

ইউজারের কাছ থেকে ইনপুট নিতে লজিকবাংলায় জিজ্ঞেস আছে। Parser এটাকে AskNode(targets) বানায়, যেখানে targets হতে পারে ভেরিয়েবল বা অ্যারে ইনডেক্সও।

কীভাবে ইনপুট ভেঙে নেয়?

তোমার Interpreter এক লাইনের ইনপুটকে space দিয়ে split করে এবং জিজ্ঞেস >> a >> b হলে সিরিয়াল অনুযায়ী বসিয়ে দেয়। সাথে আগে থেকেই ভেরিয়েবল ডিক্লেয়ার করা আছে কিনা—এটা pre-validation করে নেয়। :contentReference[oaicite:3]{index=3}

দেখাও "আপনার বয়স কত?";
পূর্ণসংখ্যা বয়স = ০;
জিজ্ঞেস >> বয়স;

দেখাও "আপনার বয়স: " >> বয়স;

এক লাইনে একাধিক ইনপুট (space-separated) নেওয়ার উদাহরণ

দেখাও "নাম এবং আইডি দিন (যেমন: Rahim 1001):";
বাক্য নাম = "";
পূর্ণসংখ্যা আইডি = ০;

জিজ্ঞেস >> নাম >> আইডি;

দেখাও "নাম: " >> নাম >> ", আইডি: " >> আইডি;

৩) কন্ডিশনাল — যদি, অথবা, নাহলে

শর্তসাপেক্ষে কোড চালাতে যদি ব্যবহার হয়। এর পরে অথবা দিয়ে একাধিক কন্ডিশনাল ব্রাঞ্চ যোগ করা যায়, এবং শেষে নাহলে ব্লক। Interpreter কেসগুলো সিরিয়ালভাবে চেক করে, যেটা true হয় সেটা execute করে। :contentReference[oaicite:4]{index=4}

পূর্ণসংখ্যা বয়স = ১৯;

যদি বয়স >= ১৮ {
    দেখাও "আপনি ভোট দিতে পারবেন।";
} অথবা বয়স > ১৫ {
    দেখাও "আপনি কিশোর।";
} নাহলে {
    দেখাও "আপনি শিশু।";
}

৪) লুপ — পুনরাবৃত্তি (for loop)

লজিকবাংলার পুনরাবৃত্তি লুপে তিন অংশ থাকে: init → condition → step। তোমার AST-এ এটি ForNode(init_nodes, condition, step_nodes, body) হিসেবে থাকে—মানে init/step একাধিকও হতে পারে।

পূর্ণসংখ্যা k = ১;

পুনরাবৃত্তি (শুরু k = ১; ততক্ষণ k <= ৫; k++) {
    দেখাও "ধাপ " >> k;
}

৫) জাম্প স্টেটমেন্ট — থাম (break), চল (continue)

লুপের ভেতরে:

  • থাম = লুপ থেকে বের হয়ে যায় (break)
  • চল = বর্তমান ধাপ স্কিপ করে পরের ধাপে যায় (continue)
Parser এগুলোকে BreakNode, ContinueNode বানায় এবং Interpreter লুপ এক্সিকিউশনে এগুলো হ্যান্ডেল করে।

পূর্ণসংখ্যা i = ০;

পুনরাবৃত্তি (শুরু i = ১; ততক্ষণ i <= ১০; i++) {

    // ৩ দিয়ে ভাগ যায় এমন সংখ্যা স্কিপ
    যদি (i % ৩ == ০) {
        চল;
    }

    // ৮ এ পৌঁছালে থেমে যাবে
    যদি (i == ৮) {
        থাম;
    }

    দেখাও "i = " >> i;
}
⚠️ মনে রাখবে: থাম/চল শুধুমাত্র লুপের ভেতরে যুক্তিসঙ্গত। লুপের বাইরে ব্যবহার করলে runtime flow অদ্ভুত হতে পারে।

৬) অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) — ক্লাস, কনস্ট্রাক্টর, অবজেক্ট

লজিকবাংলায় ক্লাস ডিফাইন করতে ক্লাস, অবজেক্ট বানাতে নতুন, এবং ক্লাসের ভেতরে নিজের মেম্বার ধরতে নিজ ব্যবহৃত হয়। তোমার Parser OOP সাপোর্টে:

  • নতুন শিক্ষক(...) → NewObjectNode
  • স্যার.তথ্য_দেখাও() → MethodCallNode
  • নিজ.নাম → ThisNode + PropertyAccessNode

সম্পূর্ণ OOP কোড উদাহরণ (Class + Object + Method Call)

ক্লাস শিক্ষক {
    বন্ধ বাক্য নাম;          // private
    মুক্ত পূর্ণসংখ্যা আইডি;   // public

    // কনস্ট্রাক্টর: নাম 'শুরু' হলেই constructor হিসেবে ধরা হয়
    শুরু(বাক্য n, পূর্ণসংখ্যা i) {
        নিজ.নাম = n;
        নিজ.আইডি = i;
    }

    মুক্ত তথ্য_দেখাও() {
        দেখাও "শিক্ষক: " >> নিজ.নাম >> " (ID: " >> নিজ.আইডি >> ")";
    }
}

// -------- main ----------
ধরি স্যার = নতুন শিক্ষক("রহিম স্যার", ১০০০১);
স্যার.তথ্য_দেখাও();
Note (Access Modifier)

তোমার Interpreter access modifier (মুক্ত/বন্ধ/ভিতরের) অনুযায়ী member access চেক করে। অর্থাৎ private member বাইরের context থেকে অ্যাক্সেস করলে বাধা দিতে পারে। :contentReference[oaicite:8]{index=8}

৭) বিশেষ ফিচার — সময় এবং “শেষ এক্সপ্রেশন = রিটার্ন ভ্যালু”

সময় (Time) তোমার Interpreter-এ built-in হিসেবে আছে: সময়() বা সময়("2025-01-01") টাইপ কল দিয়ে Time অবজেক্ট পাওয়া যায়। :contentReference[oaicite:9]{index=9}

ধরি বর্তমান = সময়();
দেখাও "এখন: " >> বর্তমান;

আরেকটা গুরুত্বপূর্ণ জিনিস: ফাংশনের বডি বা ব্লকে (ListNode/block) যে “শেষ স্টেটমেন্ট/এক্সপ্রেশন” থাকে—ওটাই রিটার্ন ভ্যালু হিসেবে কাজ করতে পারে। এটা তোমার execute_block() এবং UserDefinedFunction.execute()—দুই জায়গাতেই করা আছে।

তোমার দেওয়া ক্ষেত্রফল উদাহরণ — “ব্লকের শেষ মান রিটার্ন” (ফাংশন দিয়ে safest way)

কাজ ক্ষেত্রফল() {
    ধরি দৈর্ঘ্য = ১০;
    ধরি প্রস্থ = ৫;
    দৈর্ঘ্য * প্রস্থ; // ✅ শেষ এক্সপ্রেশন—এটাই রিটার্ন হিসেবে কাজ করবে
}

ধরি a = ক্ষেত্রফল();
দেখাও "ক্ষেত্রফল = " >> a;
⚠️ তোমার বর্তমান Parser-এ ধরি x = { ... }; টাইপ “standalone block-as-expression” সবখানে অনুমোদিত নাও হতে পারে। তাই production-safe স্টাইলে ফাংশন ব্যবহার করাই best।
Previous
Output/আউটপুট
Next Lesson
Syntax/গঠন
কুইজ 1/5

স্ক্রিনে কিছু দেখাতে কোন শব্দটি ব্যবহার করা হয়?

Jukti Lab Logo
যুক্তি ল্যাবJukti Lab

যুক্তি ল্যাব একটি গবেষণা ও উন্নয়ন ভিত্তিক প্রতিষ্ঠান, যেখানে উদ্ভাবনী গবেষণার মাধ্যমে তৈরি করি স্মার্ট সফটওয়্যার সリューション এবং বাংলায় প্রোগ্রামিং শিক্ষার আধুনিক প্ল্যাটফর্ম।

প্রয়োজনীয় লিংক

  • রিভিউ

কোম্পানি

  • About Us
  • Contact

Contact Us

  • [email protected]
  • +880 1234-567890
  • House-xx, Road-xx, Dhaka, Bangladesh

Follow Us

© 2026 যুক্তি ল্যাব (Jukti Lab). All rights reserved. HOST WITH GOTMYHOST

Privacy PolicyTerms of Service