প্রোগ্রামিংয়ের মৌলিক ধারণা/ডু হোয়াইল লুপ
সংক্ষিপ্ত বিবরণ
[সম্পাদনা]একটি ডু হোয়াইল (do while) লুপ একটি নিয়ন্ত্রণ প্রবাহ বিবৃতি যা কমপক্ষে একবার কোডের একটি ব্লক সম্পাদন করে, এবং তারপর ব্লকটি পুনরায় সম্পাদন করে, অথবা না, একটি নির্দিষ্ট বুলিয়ান শর্তের উপর ভিত্তি করে যা ব্লকের শেষে দেওয়া হয়।Wikipedia: Do while loop
কিছু ভাষা এই ধরনের লুপের জন্য একটি ভিন্ন নামকরণের কনভেনশন ব্যবহার করতে পারে। উদাহরণস্বরূপ, পাসক্যাল ভাষায় একটি repeat until লুপ রয়েছে, যা তখন পর্যন্ত চলতে থাকে যতক্ষণ না নিয়ন্ত্রণের অভিব্যক্তি সঠিক হয় (এবং তারপর শেষ হয়) — যেখানে একটি “while” লুপ তখন পর্যন্ত চলে যতক্ষণ না নিয়ন্ত্রণের অভিব্যক্তি সঠিক থাকে (এবং অভিব্যক্তি মিথ্যা হয়ে গেলে এটি শেষ হয়ে যায়)।Wikipedia: Do while loop
আলোচনা
[সম্পাদনা]টেস্ট আফটার লুপের পরিচিতি
[সম্পাদনা]নির্বাহ (অথবা পুনরাবৃত্তি) শ্রেণীতে দুটি সাধারণভাবে ব্যবহৃত টেস্ট আফটার লুপ রয়েছে। এগুলি হল: do while এবং repeat until। এই মডিউল উভয়টিই কভার করে।
সাধারণভাবে পুনরাবৃত্তি বোঝা – do while
[সম্পাদনা]পুনরাবৃত্তির ধারণা একটি কাজ পুনরায় করার ইচ্ছার সাথে সম্পর্কিত। অন্যান্য নিয়ন্ত্রণ কাঠামোর মতো, আমরা একটি প্রশ্ন করি লুপের কার্যকারিতা নিয়ন্ত্রণ করতে। লুপ শব্দটি এসেছে সেই বৃত্তাকার গতির থেকে যা ফ্লোচার্টিং করার সময় ঘটে। do while লুপের মৌলিক রূপ হল নিম্নরূপ: do কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম পতাকাটি আপডেট করুন যখন প্রশ্নের উত্তর সঠিক হয় প্রায় সমস্ত প্রোগ্রামিং ভাষায় প্রশ্নটি (যাকে টেস্ট এক্সপ্রেশন বলা হয়) একটি বুলিয়ান অভিব্যক্তি। বুলিয়ান ডেটা টাইপের দুটি মান থাকে – true এবং false। আসুন এই কাঠামোটি নতুন করে লিখি: do কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম পতাকাটি আপডেট করুন যখন অভিব্যক্তিটি সঠিক হয় do while নিয়ন্ত্রণ কাঠামোতে একটি সঠিকভাবে কাজ করা লুপের তিনটি গুণ রয়েছে। এগুলি হল: • কর্ম বা কার্যকলাপ • পতাকাটির আপডেট • টেস্ট এক্সপ্রেশন
ইংরেজি বাক্যাংশ হল, “আপনি কাজটি করবেন যতক্ষণ না অভিব্যক্তিটি সঠিক থাকে।” এটি সঠিক অবস্থায় লুপ করা। যখন টেস্ট এক্সপ্রেশনটি মিথ্যা হয়, আপনি লুপটি বন্ধ করবেন এবং প্রোগ্রামের পরবর্তী আইটেমে চলে যাবেন। লক্ষ্য করুন, যেহেতু এটি একটি টেস্ট আফটার লুপ, কাজটি অবশ্যই কমপক্ষে একবার হবে। এটি একটি টেস্ট আফটার লুপ হিসাবে পরিচিত কারণ টেস্টটি কাজের পরে আসে। এটি কখনও কখনও পোস্ট-টেস্ট লুপ হিসাবেও পরিচিত, যার মানে হল যে টেস্ট কাজের এবং আপডেটের পরে আসে।
সাধারণভাবে পুনরাবৃত্তি বোঝা – repeat until
[সম্পাদনা]পুনরাবৃত্তির ধারণা একটি কাজ পুনরায় করার ইচ্ছার সাথে সম্পর্কিত। অন্যান্য নিয়ন্ত্রণ কাঠামোর মতো, আমরা একটি প্রশ্ন করি লুপের কার্যকারিতা নিয়ন্ত্রণ করতে। লুপ শব্দটি এসেছে সেই বৃত্তাকার গতির থেকে যা ফ্লোচার্টিং করার সময় ঘটে। repeat until লুপের মৌলিক রূপ হল নিম্নরূপ: repeat কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম পতাকাটি আপডেট করুন যতক্ষণ না প্রশ্নের উত্তর সঠিক হয়ে যায় প্রায় সমস্ত প্রোগ্রামিং ভাষায় প্রশ্নটি (যাকে টেস্ট এক্সপ্রেশন বলা হয়) একটি বুলিয়ান অভিব্যক্তি। বুলিয়ান ডেটা টাইপের দুটি মান থাকে – true এবং false। আসুন এই কাঠামোটি নতুন করে লিখি: repeat কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম কিছু বিবৃতি বা কর্ম পতাকাটি আপডেট করুন যতক্ষণ না অভিব্যক্তিটি সঠিক হয়ে যায় repeat until নিয়ন্ত্রণ কাঠামোতে একটি সঠিকভাবে কাজ করা লুপের তিনটি গুণ রয়েছে। এগুলি হল: • কর্ম বা কার্যকলাপ • পতাকাটির আপডেট • টেস্ট এক্সপ্রেশন
ইংরেজি বাক্যাংশ হল, “আপনি কাজটি পুনরাবৃত্তি করবেন যতক্ষণ না অভিব্যক্তিটি সঠিক হয়ে যায়।” এটি মিথ্যা অবস্থায় লুপ করা। যখন টেস্ট এক্সপ্রেশনটি সঠিক হয়ে যায়, আপনি লুপটি বন্ধ করবেন এবং প্রোগ্রামের পরবর্তী আইটেমে চলে যাবেন। লক্ষ্য করুন, যেহেতু এটি একটি টেস্ট আফটার লুপ, কাজটি অবশ্যই কমপক্ষে একবার হবে। এটি একটি “টেস্ট আফটার লুপ” হিসাবে পরিচিত কারণ টেস্টটি কাজের পরে আসে। এটি কখনও কখনও পোস্ট-টেস্ট লুপ হিসাবেও পরিচিত, যার মানে হল যে টেস্ট কাজের এবং আপডেটের পরে আসে।
একটি উদাহরণ
[সম্পাদনা]Do আউটপুট “আপনার বয়স কত?” ইনপুট user_age আউটপুট “আপনার বন্ধুর বয়স কত?” ইনপুট friend_age আউটপুট “মোট আপনার বয়স এবং আপনার বন্ধুর বয়স হল: “ আউটপুট age_user + friend_age আউটপুট “আপনি কি আবার চেষ্টা করতে চান? y বা n” ইনপুট loop_response While loop_response == ‘y’ টেস্ট আফটার লুপের তিনটি গুণ রয়েছে। কর্ম অংশে ৬টি লাইন আছে যা ডেটা চেয়ে তারপর দুটি বয়সের মোট যোগফল দেখায়। পতাকাটি আপডেট করার অংশ হল প্রশ্নটি প্রদর্শন করা এবং loop_response ভেরিয়েবলটির জন্য উত্তর পাওয়া। টেস্ট হল পতাকা ভেরিয়েবলের মানকে ছোট হাতের ‘y’ চরিত্রের সাথে তুলনা করা। লুপটি loop_response ‘y’ হলে চলতে থাকবে।
এই ধরনের লুপ নিয়ন্ত্রণকে ইভেন্ট কন্ট্রোলড লুপ বলা হয়। পতাকাটি আপডেট হওয়া একটি ইভেন্ট যেখানে কেউ সিদ্ধান্ত নেয় যে তারা লুপটি আবার চালাতে চায় কিনা।
লুপের কার্যক্রম এবং পতাকাটির আপডেটের সাথে সঠিকভাবে ইনডেন্টেশন ব্যবহার করা একটি স্বাভাবিক শিল্প অনুশীলন।
অসীম লুপ
[সম্পাদনা]এই মুহূর্তে, এটা উল্লেখ করা গুরুত্বপূর্ণ যে ভাল প্রোগ্রামিং সর্বদা একটি পদ্ধতি প্রদান করে যাতে নিশ্চিত করা যায় যে লুপের প্রশ্ন শেষ পর্যন্ত মিথ্যা হবে যাতে লুপটি চলতে থামে এবং প্রোগ্রামটি পরবর্তী কোড লাইনে চলে যায়। তবে, যদি এটি না ঘটে, তাহলে প্রোগ্রামটি একটি অসীম লুপে চলে যাবে এবং এটি বন্ধ হবে না যতক্ষণ না প্রোগ্রামটি বাহ্যিকভাবে শেষ না করা হয় বা কম্পিউটারটি পুনরায় চালু না হয়। নীচের কোডটি দেখুন: loop_response = ‘y’ Do আউটপুট “আপনার বয়স কত?” ইনপুট user_age আউটপুট “আপনার বন্ধুর বয়স কত?” ইনপুট friend_age আউটপুট “মোট আপনার বয়স এবং আপনার বন্ধুর বয়স হল: “ আউটপুট user_age + friend_age While loop_response == ‘y’ প্রোগ্রামার লুপের আগে পতাকায় একটি মান অ্যাসাইন করেছিলেন এবং পতাকাটি আপডেট করতে ভুলে গিয়েছিলেন। প্রতিবার টেস্ট এক্সপ্রেশনটি জিজ্ঞাসা করা হলে এটি সবসময় সঠিক হবে। তাই, এটি একটি অসীম লুপ হয়ে গেছে কারণ প্রোগ্রামার লুপটি শেষ করার একটি পদ্ধতি প্রদান করেননি (তিনি পতাকাটি আপডেট করতে ভুলে গিয়েছিলেন)।
নিচের কোডটি দেখুন: do আউটপুট “আপনার বয়স কত?” ইনপুট user_age আউটপুট “আপনার বন্ধুর বয়স কত?” ইনপুট friend_age আউটপুট “মোট আপনার বয়স এবং আপনার বন্ধুর বয়স হল: “ আউটপুট age_user + friend_age আউটপুট “আপনি কি আবার চেষ্টা করতে চান? y বা n” ইনপুট loop_response While loop_response = ‘y’ আপনি যতই ব্যবহারকারী পতাকাটির আপডেটের সময় উত্তর দিন না কেন, টেস্ট এক্সপ্রেশনটি একটি সম্পর্কিত তুলনা করে না বরং একটি অ্যাসাইনমেন্ট করে। এটি ‘y’ কে ভেরিয়েবল অ্যাসাইন করে এবং জিজ্ঞাসা করে, ‘y’ কি সঠিক? যেহেতু সমস্ত নন-জিরো মান সঠিক হিসেবে গৃহীত হয়, তাই টেক্সট প্রশ্নের উত্তর সঠিক হবে। ফলস্বরূপ, আপনি একটি অসীম লুপ পাবেন।
মূল শব্দাবলী
[সম্পাদনা]- action item
- পুনরাবৃত্তি নিয়ন্ত্রণ কাঠামোর একটি গুণ।
- at least once
- নির্দেশ করে যে টেস্ট আফটার লুপগুলি কমপক্ষে একবার কর্ম সম্পাদন করে।
- do while
- একটি টেস্ট আফটার পুনরাবৃত্তি নিয়ন্ত্রণ কাঠামো।
- infinite loop
- একটি নির্দেশনা সিকোয়েন্স যা সীমাহীনভাবে লুপ হয়, অথবা লুপের কোনও সমাপ্তি শর্ত না থাকা, এমন একটি শর্ত যা কখনও পূর্ণ হবে না, অথবা এমন একটি শর্ত যা লুপটি আবার শুরু করতে বাধ্য করে।Wikipedia: Infinite loop
- event controlled loop
- যেখানে ব্যবহারকারী ইনপুট ব্যবহার করে লুপ নিয়ন্ত্রণ করা হয়।https://press.rebus.community/programmingfundamentals/chapter/do-while-loop/
- repeat until
- একটি টেস্ট আফটার পুনরাবৃত্তি নিয়ন্ত্রণ কাঠামোর বিকল্প যা কিছু প্রোগ্রামিং ভাষায় উপলব্ধ।
- test item
- পুনরাবৃত্তি নিয়ন্ত্রণ কাঠামোর একটি গুণ।
- update item
- পুনরাবৃত্তি নিয়ন্ত্রণ কাঠামোর একটি গুণ।