একটি রিকার্সিভ ফাংশন কী এবং আপনি কীভাবে জাভাতে একটি তৈরি করবেন?

কোড পুনরাবৃত্তি করার প্রয়োজনটিকে বিশ্বের বৃহত্তম সমস্যাগুলির সমাধানের জন্য অনুসন্ধানের ক্ষেত্রে কখনই অবমূল্যায়ন করা যায় না। আপনার যা জানা দরকার তা হ'ল প্রোগ্রামিংয়ে পুনরাবৃত্তি দুটি ফর্মের একটি গ্রহণ করে — পুনরাবৃত্তি বা পুনরাবৃত্তি।

এখানে লক্ষ্যটি হ'ল কোডে পুনরাবৃত্তি করার জন্য আপনাকে পরিচয় করিয়ে দেওয়া এবং এটি আপনার জাভা প্রোগ্রামগুলিকে উন্নত করতে কীভাবে যেতে পারে তা প্রদর্শন করা।

পুনরাবৃত্তিমূলক প্রোগ্রামগুলি আপনাকে বেশ কয়েকটি জটিল প্রোগ্রামিং সমস্যার সমাধান করতে সহায়তা করতে পারে। জাভাতে পুনরাবৃত্তি প্রোগ্রামগুলি তৈরি করতে আপনার যা জানতে হবে তা এখানে।

Iteration ব্যবহার করে

আইট্রেশন কোড পুনরাবৃত্তি করতে একটি লুপ কাঠামো ব্যবহার করে। তিন ধরণের পুনরাবৃত্ত স্ট্রাকচার হ'ল প্রাক-পরীক্ষার লুপ (যখন), পরীক্ষার পরে লুপ (করণীয়) এবং পাল্টা নিয়ন্ত্রিত লুপ (জন্য) for

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

উদাহরণস্বরূপ, আমরা 1 থেকে n পর্যন্ত সমস্ত পূর্ণসংখ্যার যোগফলের সমস্যা সমাধানের জন্য পুনরাবৃত্ত স্ট্রাকচারগুলির একটিতে নিয়োগ করতে পারি। পুনরাবৃত্ত কাঠামোর উপর নির্ভর করে সমাধানটি একটি নির্দিষ্ট ফর্ম গ্রহণ করবে, তবে তিনটি পুনরাবৃত্ত কাঠামোর মধ্যে যে কোনও একটি নীচের সিউডোকোড ব্যবহার করে এই সমস্যার সমাধান দিতে পারে।

বিভাজন সিউডোকোড উদাহরণ

 
START
DECLEARE sum, count as integer
sum = 0
count = 1
REPEAT
Sum = sum + count
Count = count + 1
UNTIL count > n
END

উপরের সিউডোকোডে দুটি ভেরিয়েবল, যোগফল এবং গণনা রয়েছে যা যথাক্রমে 0 এবং 1-এ শুরু হয়। "কাউন্ট" ভেরিয়েবলটি 1 থেকে শুরু করা হয়েছে কারণ আমরা যে সমস্যাটি সমাধান করার চেষ্টা করছি তা জানিয়েছে যে আমাদের 1 থেকে n পর্যন্ত সমস্ত সংখ্যার যোগফল প্রয়োজন।

ভেরিয়েবলটি "এন" ব্যবহারকারীর পক্ষ থেকে একটি এলোমেলো সংখ্যা নির্ধারণ করা হবে এবং প্রতিবার একটি লুপ সঞ্চালনের সময় "কাউন্ট" ভেরিয়েবল একের সাথে বৃদ্ধি পাবে, তবে "কাউন্ট" ভেরিয়েবলের মান "এন" ছাড়িয়ে গেলেই লুপ বন্ধ হবে।

পুনরাবৃত্তি কেন ব্যবহার করবেন?

যদি আমরা পুনরাবৃত্তি এবং পুনরাবৃত্তির আশেপাশের তথ্যগুলি পর্যালোচনা করি তবে আমরা বেশ কয়েকটি বিষয় সত্য বলে খুঁজে পেতে পারি।

  • উভয় পদ্ধতি পুনরাবৃত্তি জড়িত।
  • উভয় পদ্ধতিতে একটি পরীক্ষার শর্ত প্রয়োজন, যা কখন থামবে তা নির্দেশ করবে।
  • উভয় পদ্ধতি তাত্ত্বিকভাবে চিরকাল কার্যকর করতে পারে যদি একটি প্রস্থান শর্ত না দেওয়া হয় বা পূরণ না হয়।
  • পুনরাবৃত্তি ব্যবহার করে সমাধান করা যায় এমন যে কোনও সমস্যা পুনরাবৃত্তি এবং তদ্বিপরীত ব্যবহার করেও সমাধান করা যেতে পারে।

তাহলে আমরা কেন অন্য পদ্ধতির চেয়ে একটি পদ্ধতি বেছে নিতে চাই? সহজ উত্তরটি হ'ল দক্ষতা। পুনরাবৃত্তি সহ, একজন প্রোগ্রামার মূলত একই ফলাফলটি অর্জন করতে কম কোড ব্যবহার করতে পারে। কম কোডের অর্থ হ'ল ত্রুটি নজরে না যাওয়ার সম্ভাবনাতে উল্লেখযোগ্য হ্রাস রয়েছে।

পুনরাবৃত্তি আরও মেমরি ব্যবহার করে এবং পুনরাবৃত্তির চেয়ে ধীর হয় তবে এতে অন্তর্নির্মিত স্ট্যাক থাকে (ডেটা স্ট্রাকচার)। পুনরাবৃত্তির সাথে আপনাকে একটি কোড কাঠামো তৈরি করতে হবে (মূলত চাকাটি পুনরায় উদ্ভাবন করা), অতিরিক্ত কোডের কারণে আপনার প্রোগ্রামটি অনাবৃত ত্রুটি হওয়ার আরও বেশি সম্ভাবনার দিকে খোলা রেখে।

সম্পর্কিত: জাভা ব্যতিক্রম: আপনি কি তাদের সঠিকভাবে পরিচালনা করছেন?

পুনরাবৃত্তি কীভাবে কাজ করে

পুনরাবৃত্তি এমন একটি প্রক্রিয়াতে দেওয়া নাম যেখানে কোনও নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত কোনও ফাংশন বারবার নিজেকে কল করে। এই পুনরাবৃত্তিমূলক পদ্ধতিগুলি তাদের নিজের থেকে ছোট এবং সহজ সংস্করণগুলিতে বিভক্ত করে সমস্যার সমাধান করে।

প্রতিটি পুনরাবৃত্ত ফাংশন দুটি অংশ নিয়ে থাকে — বেস কেস এবং জেনারেল কেস।

একটি পুনরাবৃত্ত ফাংশন উদাহরণের মৌলিক কাঠামো

 
Function(){
//base case
//general case
}

বেস কেসটি পুনরাবৃত্ত ফাংশনের বিভাগ যা সমস্যার সমাধান করে। সুতরাং, যখনই পুনরাবৃত্তির ফাংশন বেস ক্ষেত্রে উপস্থিত হয় প্রোগ্রামটি পুনরাবৃত্ত ফাংশনটি থেকে বেরিয়ে আসে এবং তার প্রাকৃতিক প্রবাহের সাথে অবিরত থাকে।

সাধারণ কেসটি পুনরাবৃত্তিযুক্ত পুনরাবৃত্ত ফাংশনের বিভাগ। এটি যেখানে ফাংশনটি নিজেকে কল করে এবং যেখানে কাজটির বেশিরভাগ অংশ সম্পন্ন হয়।

জাভাতে পুনরাবৃত্তি ব্যবহার করে

কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ কেবল পুনরাবৃত্তি সমর্থন করে, অন্যরা কেবল পুনরাবৃত্তি সমর্থন করে। ভাগ্যক্রমে, জাভা এমন একটি ভাষা যা উভয় পুনরাবৃত্তি পদ্ধতি সমর্থন করে।

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

আসুন আমাদের প্রাথমিক সংক্ষেপণের উদাহরণে ফিরে আসুন, লক্ষ্যটি 1 থেকে n পর্যন্ত সমস্ত সংখ্যার যোগফল নির্ধারণ করে, যেখানে এন ব্যবহারকারী দ্বারা সরবরাহ করা একটি পূর্ণসংখ্যা সংখ্যা।

জাভা পুনরাবৃত্তি উদাহরণ

 
//recursive function
int Sum(int n){
//base case
if (n <= 1){
return 1;
}
//general case
else{
return n + Sum(n-1);
}
}

উপরের রিকার্সিভ ফাংশনটি একটি পূর্ণসংখ্যক "এন" নেয় এবং কেবল তখনই এর প্রয়োগ কার্যকর হয় যখন এন এর মান 1 এর চেয়ে কম বা সমান হয়।

যদি আমরা উপরের প্রোগ্রামটিতে পূর্ণসংখ্যা 5টি পাস করি, তবে ভেরিয়েবল "n" 5 এর মান ধরে নিতে পারে, তবে "n" এর মানটি বেস কেসে পরীক্ষা করা হবে, তবে প্রদত্ত 5 টি 1 "n এর চেয়ে বড় ”এখন সাধারণ ক্ষেত্রে পাস করা হবে।

এই উদাহরণে, সাধারণ কেস চারবার পুনরাবৃত্তি ফাংশন কল করবে। চূড়ান্ত ফাংশনে কল করুন "এন" এর মান 1 হবে, কার্যকরভাবে বেস কেসের প্রয়োজনীয়তা পূরণের ফলে পুনরাবৃত্ত ফাংশনটি সমাপ্ত হবে এবং 15 ফিরে আসবে।

যদি আমরা "এন" এর মান 7 এ পরিবর্তন করি তবে পুনরাবৃত্ত ফাংশনটি ছয় বার কল করবে এবং এর সম্পাদন শেষ করার আগে 28 টি ফিরে আসবে।

নিজের জন্য চেষ্টা করতে চান? আপনি আপনার জাভা প্রোগ্রামের মূল ফাংশনে নিম্নলিখিত কোডের লাইনটি ব্যবহার করে উপরে পুনরাবৃত্তির প্রোগ্রামটি কার্যকর করতে পারেন।

 
System.out.println( Sum(7));

আপনি যা শিখেছেন

আপনি যদি এই পুরো নিবন্ধটির মাধ্যমে তৈরি করে থাকেন তবে আপনার কাছে এখন প্রোগ্রামিংয়ে ব্যবহৃত দুটি পুনরাবৃত্তি পদ্ধতি সম্পর্কে প্রাথমিক ধারণা রয়েছে। আপনি এখন পুনরাবৃত্তি এবং পুনরাবৃত্তির মধ্যে এবং কীভাবে কোনও বিকাশকারী পুনরাবৃত্তির উপরে পুনরাবৃত্তি ব্যবহার করতে এবং জাভাতে পুনরাবৃত্তি ফাংশন কীভাবে ব্যবহার করবেন তা চয়ন করতে পারেন।

চিত্র ক্রেডিট: এটিসইজিনিয়ারিং / পেক্সেল