Java-তে মেথড এবং ফাংশন প্রোগ্রামিংয়ের গুরুত্বপূর্ণ অংশ, যা কোডের নির্দিষ্ট কাজ বা কার্যক্রম সম্পাদন করতে সাহায্য করে। Java-তে মেথডই প্রধান কাঠামো হিসেবে কাজ করে, কারণ Java পুরোপুরি অবজেক্ট-ওরিয়েন্টেড ভাষা এবং মেথড ব্যবহার করে ক্লাসের কার্যক্রম সম্পন্ন করা হয়।
মেথড (Method)
মেথড হলো একটি কোড ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে এবং সাধারণত একটি ক্লাসের মধ্যে থাকে। মেথড পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে সাহায্য করে এবং প্রোগ্রামের নির্দিষ্ট অংশকে বিভিন্ন কাজের জন্য পৃথক করে। Java-তে মেথডকে "ফাংশন" নামেও উল্লেখ করা হতে পারে, তবে Java তে সমস্ত ফাংশন মেথড হিসেবে পরিচিত কারণ এগুলি সবসময় একটি ক্লাসের অভ্যন্তরে থাকে।
মেথডের গঠন
Java-তে একটি মেথডের গঠন নিচের মতো:
returnType methodName(parameters) {
// কোড ব্লক যা মেথডের কাজ সম্পন্ন করে
return value; // যদি returnType ভয়েড না হয়
}
উদাহরণ:
public class Calculator {
// একটি মেথড যা দুটি সংখ্যা যোগ করে ফলাফল প্রদান করে
public int add(int a, int b) {
int sum = a + b;
return sum;
}
}
মেথডের বিভিন্ন অংশ
একটি মেথড সাধারণত কয়েকটি অংশ নিয়ে গঠিত:
- returnType: মেথডটি কী ধরনের মান প্রদান করবে তা নির্ধারণ করে। যেমন,
int,double,String, বাvoid(কোনো মান প্রদান করবে না)। - methodName: মেথডের নাম যা ব্যবহারকারীর প্রয়োজনীয় কাজ নির্দেশ করে। CamelCase ফরম্যাটে লেখা হয়, যেমন:
addNumbers,calculateTotal। - parameters: এটি ভেরিয়েবল যা মেথডের অভ্যন্তরে ইনপুট হিসাবে ব্যবহৃত হয়। মেথডের প্যারামিটার নেই থাকলে
()ফাঁকা রাখা হয়। - return statement: যদি মেথড কোনো মান প্রদান করে তবে এটি
returnব্যবহার করে সেই মানটি প্রদান করে। তবেvoidটাইপের মেথডেreturnস্টেটমেন্ট প্রয়োজন হয় না।
মেথড ডিক্লেয়ারেশন এবং কলিং (Calling a Method)
মেথড ডিক্লেয়ার করার পর সেটি কল বা ব্যবহার করতে হয়। সাধারণত একটি মেথড কেবল তখনই কার্যকর হয় যখন সেটি কল করা হয়।
মেথড ডিক্লেয়ারেশন
public int add(int a, int b) {
return a + b;
}
মেথড কলিং
public class Main {
public static void main(String[] args) {
Calculator calc = new Calculator();
int result = calc.add(5, 10);
System.out.println("Sum: " + result); // Output: Sum: 15
}
}
মেথডের ধরন
১. ভয়েড মেথড (Void Method)
এটি কোনো মান প্রদান করে না এবং কেবল কাজ সম্পাদন করে।
উদাহরণ:
public void displayMessage() {
System.out.println("Hello, World!");
}
২. রিটার্ন টাইপ মেথড (Return Type Method)
এটি একটি নির্দিষ্ট মান প্রদান করে।
উদাহরণ:
public int square(int number) {
return number * number;
}
মেথড ওভারলোডিং (Method Overloading)
একই ক্লাসে একই নামের একাধিক মেথড থাকতে পারে তবে তাদের প্যারামিটারের সংখ্যা বা টাইপ ভিন্ন থাকতে হবে। এটি মেথড ওভারলোডিং নামে পরিচিত।
উদাহরণ:
public class MathOperations {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
মেথডের সুবিধা
- পুনরায় ব্যবহারযোগ্যতা: একবার একটি মেথড তৈরি করলে সেটিকে বিভিন্ন স্থানে পুনরায় ব্যবহার করা যায়।
- কোডের পরিষ্কারতা: মেথড ব্যবহার করে কোডকে ছোট ছোট অংশে বিভক্ত করা যায়, যা কোডের পরিষ্কারতা এবং পঠনযোগ্যতা বাড়ায়।
- রক্ষণাবেক্ষণ সহজ: মেথডের মাধ্যমে কোডে কোনো পরিবর্তন আনতে হলে সেটিকে নির্দিষ্ট মেথডে পরিবর্তন করা হয়, পুরো কোডে নয়।
উদাহরণ: বিভিন্ন ধরনের মেথড ব্যবহার
public class MathExample {
// void মেথড
public void greet() {
System.out.println("Hello!");
}
// রিটার্ন টাইপ মেথড
public int multiply(int a, int b) {
return a * b;
}
// ওভারলোডেড মেথড
public double multiply(double a, double b) {
return a * b;
}
public static void main(String[] args) {
MathExample example = new MathExample();
// void মেথড কল করা
example.greet();
// রিটার্ন টাইপ মেথড কল করা
int result1 = example.multiply(5, 10);
System.out.println("Multiplication (int): " + result1);
// ওভারলোডেড মেথড কল করা
double result2 = example.multiply(5.5, 10.2);
System.out.println("Multiplication (double): " + result2);
}
}
আউটপুট:
Hello!
Multiplication (int): 50
Multiplication (double): 56.1
সারসংক্ষেপ
Java তে মেথড প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা কোডকে মডুলার, পুনরায় ব্যবহারযোগ্য এবং সহজবোধ্য করে। মেথড একটি নির্দিষ্ট কাজ সম্পাদন করতে ব্যবহার করা হয়, এবং এটি ইনপুট নিয়ে কাজ সম্পন্ন করে একটি মান প্রদান করতে পারে বা কেবল কাজ সম্পাদন করতে পারে। মেথড ওভারলোডিং একই নামের মেথডে ভিন্ন ভিন্ন কাজ সম্পাদন করতে সাহায্য করে।
মেথড (Method) হলো প্রোগ্রামিংয়ে এমন একটি কোডের ব্লক যা নির্দিষ্ট কাজ সম্পন্ন করে। মেথড ব্যবহার করে প্রোগ্রামে কোড পুনরায় ব্যবহারযোগ্য এবং সংগঠিত রাখা সম্ভব হয়। এটি প্রোগ্রামের একটি নির্দিষ্ট অংশকে নির্দিষ্ট কাজ সম্পন্ন করতে আলাদা করে, যা প্রোগ্রামকে মডুলার এবং সহজবোধ্য করে তোলে।
মেথডের গঠন
Java তে একটি মেথডের সাধারণ গঠন নিম্নরূপ:
accessModifier returnType methodName(parameters) {
// মেথডের কাজ বা কার্যপ্রণালী
}
- accessModifier: মেথড কোথা থেকে অ্যাক্সেসযোগ্য হবে তা নির্ধারণ করে (
public,private,protectedইত্যাদি)। - returnType: মেথড কোন ধরনের মান রিটার্ন করবে তা নির্দেশ করে (যেমন
int,void,Stringইত্যাদি)। যদি কোনো মান রিটার্ন না করে, তাহলেvoidব্যবহার করা হয়। - methodName: মেথডের নাম যা দিয়ে এটি চিহ্নিত হয়। এটি সাধারণত ছোট হাতের অক্ষরে লেখা হয়।
- parameters: মেথডের ইনপুট হিসেবে এক বা একাধিক প্যারামিটার থাকতে পারে।
উদাহরণ:
public int add(int a, int b) {
int sum = a + b;
return sum;
}
উপরের উদাহরণে:
publicহল access modifier, যা মেথডকে সবার জন্য উন্মুক্ত করে।intহল returnType, যা বলে যে এই মেথড একটিintটাইপের মান রিটার্ন করবে।addহল মেথডের নাম।(int a, int b)প্যারামিটারগুলির মাধ্যমে মেথডে ইনপুট নেওয়া হয়।return sum;দিয়েsumভেরিয়েবলের মান রিটার্ন করা হয়।
মেথড কেন ব্যবহার করা হয়?
১. কোড পুনরায় ব্যবহারযোগ্যতা (Code Reusability)
মেথড তৈরি করে একবার কাজ সংজ্ঞায়িত করলে, সেটি প্রোগ্রামের বিভিন্ন স্থানে বারবার ব্যবহার করা যায়। এতে কোড পুনরায় লিখতে হয় না, ফলে কোডের পুনরায় ব্যবহারযোগ্যতা বাড়ে।
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
Calculator calc = new Calculator();
System.out.println("Addition: " + calc.add(5, 3));
System.out.println("Addition: " + calc.add(10, 15));
}
}
এখানে add মেথড একাধিকবার ব্যবহার করা হয়েছে, যা কোডের পুনরায় ব্যবহার নিশ্চিত করে।
২. কোডের মডুলারিটি (Modularity)
মেথড ব্যবহার করলে প্রোগ্রামের কোড ছোট ছোট অংশে বিভক্ত করা যায়, যা কোডের মডুলারিটি বৃদ্ধি করে। মডুলার প্রোগ্রামিংয়ে প্রতিটি মেথড নির্দিষ্ট কাজ সম্পন্ন করে, ফলে প্রোগ্রাম বুঝতে এবং পরিচালনা করতে সহজ হয়।
৩. কোডের পাঠযোগ্যতা বৃদ্ধি (Readability)
মেথড ব্যবহার করলে কোড সহজে বোঝা যায় এবং কোডের পাঠযোগ্যতা বৃদ্ধি পায়। উদাহরণস্বরূপ, calculateArea নামক মেথড দেখেই বোঝা যায় এটি একটি এলাকার হিসাব করবে, ফলে পুরো প্রোগ্রামটি বুঝতে সহজ হয়।
৪. কোড মেইনটেনেন্স সহজ করা (Maintainability)
মেথড ব্যবহার করলে কোড সহজে মেইনটেন করা যায়। কোনো পরিবর্তনের প্রয়োজন হলে শুধু মেথডের ভেতর পরিবর্তন করলেই হয়, পুরো প্রোগ্রামে পরিবর্তন করতে হয় না। এতে সময় এবং পরিশ্রম সাশ্রয় হয়।
মেথডের উদাহরণ: একটি সাধারণ প্রোগ্রাম
public class MathOperations {
// মেথড যা দুটি সংখ্যার যোগফল রিটার্ন করে
public int add(int a, int b) {
return a + b;
}
// মেথড যা দুটি সংখ্যার গুণফল রিটার্ন করে
public int multiply(int a, int b) {
return a * b;
}
public static void main(String[] args) {
MathOperations math = new MathOperations();
int sum = math.add(5, 10); // add মেথড কল করা হচ্ছে
int product = math.multiply(4, 3); // multiply মেথড কল করা হচ্ছে
System.out.println("Sum: " + sum);
System.out.println("Product: " + product);
}
}
আউটপুট:
Sum: 15
Product: 12
ব্যাখ্যা:
addএবংmultiplyদুটি আলাদা মেথড যা নির্দিষ্ট কাজ (যোগ এবং গুণ) সম্পন্ন করে।mainমেথডেaddএবংmultiplyমেথড কল করে আউটপুট প্রদর্শিত হচ্ছে।- মেথডগুলো ব্যবহারের ফলে কোড মডুলার এবং পুনরায় ব্যবহারযোগ্য হয়েছে।
মেথডের প্রকারভেদ
Void Method: যেসব মেথড কোনো মান রিটার্ন করে না। উদাহরণ:
public void displayMessage() {
System.out.println("Hello, World!");
}
Parameterized Method: যেসব মেথডে ইনপুট প্যারামিটার থাকে। উদাহরণ:
public int subtract(int a, int b) {
return a - b;
}
Return Type Method: যেসব মেথড কোনো মান রিটার্ন করে। উদাহরণ:
public double calculateArea(double radius) {
return 3.1416 * radius * radius;
}
সারসংক্ষেপ
- মেথড হলো নির্দিষ্ট কাজ সম্পন্ন করার জন্য কোডের ব্লক।
- এটি কোডের পুনরায় ব্যবহারযোগ্যতা, মডুলারিটি, এবং পাঠযোগ্যতা বাড়ায়।
- মেথডের মাধ্যমে কোডের মেইনটেনেন্স সহজ হয়।
- বিভিন্ন প্রকার মেথড রয়েছে, যেমন
voidমেথড,parameterizedমেথড, এবংreturn typeমেথড।
মেথড ব্যবহার করে প্রোগ্রামকে আরও সংগঠিত, মডুলার এবং সহজবোধ্য করা যায়, যা প্রোগ্রামের স্থায়িত্ব এবং মেইনটেনেন্সে সহায়ক।
Java-তে মেথডের প্যারামিটার এবং রিটার্ন ভ্যালু মেথডের কার্যকারিতা এবং ডেটা ব্যবহারের উপায়কে আরও কার্যকরী করে তোলে। মেথডের প্যারামিটার ইনপুট হিসেবে কাজ করে, যা মেথডকে নির্দিষ্ট কাজ সম্পাদনের জন্য প্রয়োজনীয় তথ্য প্রদান করে। রিটার্ন ভ্যালু মেথডের কার্য সম্পাদনের ফলাফল হিসেবে একটি মান প্রদান করে, যা মেথড কল করার পরে অন্য স্থানে ব্যবহার করা যায়।
মেথডের প্যারামিটার (Method Parameters)
মেথডের প্যারামিটার হলো মেথডে পাস করা ইনপুট ডেটা। যখন একটি মেথড কল করা হয়, তখন এটি প্যারামিটার হিসেবে কিছু মান গ্রহণ করতে পারে এবং সেই মানগুলোর উপর ভিত্তি করে কার্য সম্পাদন করে।
মেথড প্যারামিটার ডিক্লেয়ারেশন
মেথড ডিক্লেয়ারেশনে () এর মধ্যে প্যারামিটারগুলির ডেটা টাইপ এবং নাম নির্ধারণ করা হয়।
উদাহরণ:
public int add(int a, int b) {
return a + b;
}
এখানে, add মেথড দুটি int প্যারামিটার গ্রহণ করে: a এবং b। এই প্যারামিটারগুলো মেথডের অভ্যন্তরে ব্যবহার করা হয়।
প্যারামিটার সহ মেথড কলিং
public class Main {
public static void main(String[] args) {
Main obj = new Main();
int sum = obj.add(5, 10); // প্যারামিটার হিসেবে ৫ এবং ১০ পাস করা হলো
System.out.println("Sum: " + sum); // Output: Sum: 15
}
public int add(int a, int b) {
return a + b;
}
}
মেথডের রিটার্ন ভ্যালু (Return Value)
মেথডের রিটার্ন ভ্যালু হলো মেথড থেকে প্রাপ্ত একটি মান, যা মেথডের কাজ সম্পন্ন করার পরে মেথড কলিং অংশে পাঠানো হয়। মেথডের return টাইপ যা নির্ধারণ করা হয়, সেই অনুযায়ী রিটার্ন ভ্যালু প্রদান করতে হবে।
মেথড রিটার্ন টাইপ
মেথডের রিটার্ন টাইপ মেথডের কার্য সম্পাদনের ফলাফল হিসেবে কোন ধরনের মান প্রদান করবে তা নির্ধারণ করে। উদাহরণস্বরূপ, int, double, String, বা void হতে পারে।
রিটার্ন স্টেটমেন্ট
রিটার্ন স্টেটমেন্ট ব্যবহার করে মেথড থেকে একটি মান ফিরিয়ে দেয়া হয়। যদি মেথডের রিটার্ন টাইপ void না হয়, তাহলে অবশ্যই return স্টেটমেন্ট থাকা উচিত।
উদাহরণ:
public int square(int number) {
return number * number; // এখানে number-এর বর্গ প্রদান করছে
}
রিটার্ন ভ্যালু সহ মেথড কলিং
public class Main {
public static void main(String[] args) {
Main obj = new Main();
int result = obj.square(5); // প্যারামিটার হিসেবে ৫ পাঠানো হলো
System.out.println("Square: " + result); // Output: Square: 25
}
public int square(int number) {
return number * number;
}
}
উদাহরণ: মেথডের প্যারামিটার এবং রিটার্ন ভ্যালু একসাথে ব্যবহার
public class MathOperations {
// দুইটি সংখ্যা যোগ করে ফলাফল প্রদান করে
public int add(int a, int b) {
return a + b;
}
// তিনটি সংখ্যা গুণ করে ফলাফল প্রদান করে
public int multiply(int x, int y, int z) {
return x * y * z;
}
public static void main(String[] args) {
MathOperations math = new MathOperations();
// add মেথড কল করা
int sum = math.add(10, 20);
System.out.println("Sum: " + sum); // Output: Sum: 30
// multiply মেথড কল করা
int product = math.multiply(2, 3, 4);
System.out.println("Product: " + product); // Output: Product: 24
}
}
প্যারামিটার এবং রিটার্ন ভ্যালুর সুবিধা
- পুনঃব্যবহারযোগ্যতা: মেথডে প্যারামিটার গ্রহণ এবং রিটার্ন ভ্যালু ব্যবহার করলে একই মেথড বিভিন্ন ইনপুটের জন্য ব্যবহার করা যায়।
- কোডের সংক্ষিপ্ততা: মেথডের মাধ্যমে একাধিক কাজকে একটি নির্দিষ্ট কোড ব্লকে পৃথক করা যায়, যা কোড সহজবোধ্য করে।
- ডেটা প্রসেসিং: প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করে ডেটা পাঠানো এবং প্রক্রিয়া করে বিভিন্ন ফলাফল তৈরি করা যায়।
সারসংক্ষেপ
Java তে মেথডের প্যারামিটার এবং রিটার্ন ভ্যালু প্রোগ্রামের কার্যক্ষমতা বাড়ায়। প্যারামিটার ইনপুট ডেটা প্রদান করে এবং রিটার্ন ভ্যালু মেথডের কাজের ফলাফল হিসেবে একটি মান প্রদান করে। এটি কোডকে মডুলার এবং পুনঃব্যবহারযোগ্য করে, যা বড় প্রোগ্রামের রক্ষণাবেক্ষণ সহজ করে।
রিকার্সন (Recursion) হলো প্রোগ্রামিংয়ের একটি কৌশল, যেখানে একটি ফাংশন বা মেথড নিজেই নিজেকে কল করে কাজ সম্পন্ন করে। রিকার্সনের মাধ্যমে জটিল সমস্যাকে ধাপে ধাপে সহজ এবং ছোট আকারে ভাগ করে সমাধান করা যায়।
রিকার্সনের দুটি গুরুত্বপূর্ণ অংশ রয়েছে:
- বেস কেস (Base Case): এটি এমন একটি অবস্থা যেখানে ফাংশনটি নিজেই নিজেকে আর কল করবে না এবং সমাধান প্রদান করবে।
- রিকার্সিভ কেস (Recursive Case): এটি এমন অংশ যেখানে ফাংশনটি আবার নিজেকে কল করে এবং ছোট আকারে সমস্যার সমাধান খুঁজে পায়।
রিকার্সন কিভাবে কাজ করে?
রিকার্সিভ ফাংশন প্রতিবার নিজেকে কল করার সময় সমস্যাকে ছোট করে এবং বেস কেসে পৌঁছানো পর্যন্ত কল করে যেতে থাকে। যখন বেস কেসে পৌঁছে যায়, তখন কলগুলো শেষ হয়ে যায় এবং প্রতিটি স্তরে ফলাফল প্রদান করতে থাকে।
উদাহরণ ১: ফ্যাক্টরিয়াল গণনা
ফ্যাক্টরিয়াল হলো একটি পূর্ণসংখ্যার গুণফল, যা ঐ সংখ্যা থেকে ১ পর্যন্ত গুণ করে বের করা হয়। যেমন, 5! = 5 * 4 * 3 * 2 * 1 = 120।
রিকার্সিভ ফাংশন ব্যবহার করে ফ্যাক্টরিয়াল গণনা
public class Factorial {
// রিকার্সিভ ফাংশন
public static int factorial(int n) {
if (n == 0) {
return 1; // বেস কেস: n যদি ০ হয়, তাহলে ফ্যাক্টরিয়াল হবে ১
} else {
return n * factorial(n - 1); // রিকার্সিভ কেস: n * (n-1)!
}
}
public static void main(String[] args) {
int number = 5;
int result = factorial(number);
System.out.println("Factorial of " + number + " is: " + result);
}
}
আউটপুট:
Factorial of 5 is: 120
ব্যাখ্যা:
- এখানে
factorialমেথড নিজেই নিজেকে কল করছে। factorial(5)থেকে শুরু করে এটিfactorial(4),factorial(3)এভাবে ক্রমান্বয়ে বেস কেসে পৌঁছে যায়।- বেস কেসে
factorial(0)কল করে ১ প্রদান করা হয় এবং প্রতিটি স্তরে ফলাফল গুণফল হিসেবে ফিরে আসতে থাকে।
উদাহরণ ২: ফিবোনাচ্চি সিরিজ
ফিবোনাচ্চি সিরিজ হলো এমন একটি সংখ্যা ক্রম যেখানে প্রতিটি সংখ্যা আগের দুইটি সংখ্যার যোগফল। যেমন: 0, 1, 1, 2, 3, 5, 8, ...
রিকার্সিভ ফাংশন ব্যবহার করে ফিবোনাচ্চি সিরিজ
public class Fibonacci {
// রিকার্সিভ ফাংশন
public static int fibonacci(int n) {
if (n <= 1) {
return n; // বেস কেস: যদি n ০ বা ১ হয়, তাহলে n রিটার্ন কর
} else {
return fibonacci(n - 1) + fibonacci(n - 2); // রিকার্সিভ কেস
}
}
public static void main(String[] args) {
int terms = 7;
System.out.print("Fibonacci Series: ");
for (int i = 0; i < terms; i++) {
System.out.print(fibonacci(i) + " ");
}
}
}
আউটপুট:
Fibonacci Series: 0 1 1 2 3 5 8
ব্যাখ্যা:
- এখানে
fibonacciমেথড নিজেই নিজেকে কল করে প্রতিটি ফিবোনাচ্চি সংখ্যা বের করে। - বেস কেসে
nযদি ০ বা ১ হয়, তাহলে সেই মান রিটার্ন করে। - রিকার্সিভ কেসে
fibonacci(n - 1) + fibonacci(n - 2)কল করে ফিবোনাচ্চি সংখ্যা বের করা হয়।
রিকার্সনের সুবিধা
- কোড ছোট ও পরিষ্কার রাখা: রিকার্সন ব্যবহার করলে জটিল সমস্যার সমাধানকে সহজ ও সংক্ষিপ্ত করা যায়।
- জটিল সমস্যার সমাধানে কার্যকর: অনেক জটিল সমস্যার সমাধান রিকার্সন ব্যবহার করে সহজে করা যায়, যেমন ট্রি ট্রাভার্সাল, গ্রাফ, এবং ব্যাকট্র্যাকিং।
রিকার্সনের সীমাবদ্ধতা
- স্ট্যাক ওভারফ্লো (Stack Overflow): অনেক বেশি রিকার্সন কল হলে মেমোরি পূর্ণ হয়ে স্ট্যাক ওভারফ্লো সমস্যা হতে পারে।
- ধীরগতি (Performance Issue): রিকার্সিভ সমাধান কখনো কখনো ইটারেটিভ সমাধানের তুলনায় ধীর হতে পারে। যেমন, ফিবোনাচ্চি সিরিজের সাধারণ রিকার্সিভ সমাধানে অনেকবার একই ফাংশন কল হয়, যা সময় নষ্ট করে।
রিকার্সন বনাম ইটারেশন
| বৈশিষ্ট্য | রিকার্সন | ইটারেশন |
|---|---|---|
| সারলীকরণ | সমস্যা ছোট ছোট অংশে ভাগ করে সমাধান করে | লুপ ব্যবহার করে সমাধান করা |
| মেমোরি ব্যবহার | স্ট্যাক ব্যবহার করে | স্ট্যাক ব্যবহার করে না |
| গতি | তুলনামূলক ধীর | দ্রুত |
সারসংক্ষেপ
- রিকার্সন হলো একটি ফাংশন যা নিজেই নিজেকে কল করে।
- এটি দুটি অংশ নিয়ে কাজ করে: বেস কেস (সমাধান শেষ করার শর্ত) এবং রিকার্সিভ কেস (ফাংশন পুনরায় কল করার শর্ত)।
- জটিল সমস্যার সমাধানে রিকার্সন কার্যকর হলেও, মেমোরি ব্যবহারের কারণে এটি স্ট্যাক ওভারফ্লো সমস্যা সৃষ্টি করতে পারে।
রিকার্সন ব্যবহারে প্রোগ্রাম সংক্ষিপ্ত ও সহজবোধ্য করা যায়, তবে বড় সমস্যার ক্ষেত্রে মেমোরি ব্যবহারের সীমাবদ্ধতা মনে রাখা জরুরি।
Read more