1. returnবিবৃতি

আপনি ইতিমধ্যে জাভা পদ্ধতি সম্পর্কে সব শিখেছি মনে করেন? আপনি যা মনে করেন আপনি জানেন, আপনি এখনও এর অর্ধেক জানেন না।

সহজ কিছু দিয়ে শুরু করা যাক। উদাহরণস্বরূপ, জাভাতে একটি রিটার্ন স্টেটমেন্ট রয়েছে যা আপনাকে অবিলম্বে এটিকে কল করার পদ্ধতিটি বন্ধ করতে দেয়। এখানে বিবৃতি আছে:

return;

এটা সহজ: returnসেমিকোলন দ্বারা অনুসরণ করা একক শব্দ। প্রোগ্রামটি এই বিবৃতিটি কার্যকর করার সাথে সাথে বর্তমান পদ্ধতিটি অবিলম্বে প্রস্থান করে এবং কলিং চলতে থাকে।

যদি returnপদ্ধতিতে বলা হয় main, তবে mainপদ্ধতিটি অবিলম্বে শেষ হবে এবং এটির সাথে পুরো প্রোগ্রামটি।

উদাহরণ:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


পদ্ধতিটি fill দিয়ে পাস করা অ্যারের অংশ পূরণ করে value
অ্যারের যে অংশটি পূরণ করতে হবে তা সূচক from এবং to.
যদি  অ্যারের দৈর্ঘ্যের চেয়ে from কম 0বা বেশি হয়, তাহলে পদ্ধতিটি অবিলম্বে বন্ধ হয়ে যায়।to

উপরের প্রোগ্রামটিতে একটি fillপদ্ধতি রয়েছে যা এটিতে পাস করা অ্যারেটি পূরণ করে value। এটি সম্পূর্ণ অ্যারে পূরণ করে না, শুধুমাত্র সূচক দ্বারা নির্দিষ্ট অংশ fromএবং to.

পদ্ধতির শুরুতে fill , পাস করা মানগুলি বৈধ কিনা তা নিশ্চিত করতে পরীক্ষা করা হয়। যদি from0 এর কম হয়, অথবা যদি to অ্যারের দৈর্ঘ্যের চেয়ে বেশি হয়, তাহলে fillপদ্ধতিটি অবিলম্বে বন্ধ হয়ে যায় (একটি returnবিবৃতি কার্যকর করে)।

এই returnবিবৃতিটি দরকারী: কার্যত জাভাতে প্রতিটি পদ্ধতির একটি রয়েছে এবং কেন তা এখানে।



2. ফলাফল সহ পদ্ধতি,void

মনে রাখবেন আমরা একবার বুঝতে পেরেছিলাম যে বিবৃতি আছে, এবং অভিব্যক্তি আছে । একটি অভিব্যক্তি, একটি বিবৃতি থেকে ভিন্ন, একটি মান আছে যা কোথাও ব্যবহার করা যেতে পারে।

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

যাইহোক, আপনি ইতিমধ্যে এই জাতীয় পদ্ধতির মুখোমুখি হয়েছেন:

double delta = Math.abs(d1 - d2);
পদ্ধতি abs()একটি ডবল রিটার্ন
Scanner console = new Scanner(System.in);
int x = console.nextInt();

পদ্ধতি nextInt()একটি রিটার্নint
String str = "Hello";
String s2 = str.toUpperCase();

পদ্ধতিটি toUpperCase()একটি রিটার্ন করেString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

পদ্ধতি copyOf()একটি রিটার্নint[]

প্রতিটি পদ্ধতি শুধুমাত্র একটি পূর্বনির্ধারিত প্রকারের একটি মান ফেরত দিতে পারে। যখন পদ্ধতি ঘোষণা করা হয় তখন রিটার্নের ধরন নির্ধারণ করা হয়:

public static Type name(parameters)
{
  method body
}

name পদ্ধতির নাম কোথায় , parameters পদ্ধতির পরামিতিগুলির তালিকা এবং type পদ্ধতিটি যে ফলাফল দেয় তার ধরন।

যে পদ্ধতিগুলি কিছুই ফেরত দেয় তার জন্য একটি বিশেষ স্থানধারক প্রকার রয়েছে void:

আপনি কি আপনার নিজস্ব পদ্ধতি লিখছেন এবং কলিং পদ্ধতিতে কিছু ফেরত দিতে চান না? শুধু পদ্ধতির ধরন হিসাবে ঘোষণা করুন void, এবং সমস্যাটি সমাধান করা হয়েছে। জাভাতেও এরকম অনেক পদ্ধতি আছে।


3. একটি ফলাফল ফেরত

আমরা এইমাত্র বের করেছি কিভাবে একটি পদ্ধতি ঘোষণা করা যায় যা একটি গণনার ফলাফল প্রদান করে, কিন্তু কীভাবে আমরা এই ফলাফলটি নিজেই পদ্ধতিতে পরিণত করব?

বিবৃতি returnআমাদের এখানে আবার সাহায্য করে. একটি পদ্ধতি থেকে একটি ফলাফল পাস এই মত দেখায়:

return value;

যেখানে returnএকটি বিবৃতি যা অবিলম্বে পদ্ধতিটি বন্ধ করে দেয়। এবং value সেই মান যা পদ্ধতিটি কলিং পদ্ধতিতে ফিরে আসে যখন এটি প্রস্থান করে। পদ্ধতির ঘোষণায় উল্লেখিত টাইপ valueঅবশ্যই মেলে ।type

উদাহরণ 1. পদ্ধতিটি ন্যূনতম দুটি সংখ্যা গণনা করে:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
পদ্ধতিটি সর্বনিম্ন দুটি সংখ্যা প্রদান করে।

ফিরলে অন্যথায় ফিরুন a < b
_a

b

উদাহরণ 2. পদ্ধতিটি এটিতে পাস করা স্ট্রিংটির নকল করে n:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
পদ্ধতিতে দুটি পরামিতি লাগে — একটি স্ট্রিং এবং কতবার স্ট্রিং পুনরাবৃত্তি করা উচিত।
ভবিষ্যতের ফলাফলের জন্য একটি খালি স্ট্রিং তৈরি করা হয়।

পুনরাবৃত্তি সহ একটি লুপে times, একটি স্থান এবং strস্ট্রিং স্ট্রিং যোগ করা হয় result। পদ্ধতির ফলাফল হিসাবে

স্ট্রিংটি ফেরত দেওয়া হয়।result

উদাহরণ 3: পদ্ধতিটি টারনারি অপারেটর ব্যবহার করে সর্বাধিক দুটি সংখ্যা গণনা করে:

int max(int a, int b)
{
   return (a > b ? a : b);
}
পদ্ধতিটি সর্বাধিক দুটি সংখ্যা প্রদান করে।

প্রত্যাবর্তন (যদি a > b, তারপর a, অন্যথায় b)