CodeGym /Java Blog /এলোমেলো /জাভা নেস্টেড লুপ
John Squirrels
লেভেল 41
San Francisco

জাভা নেস্টেড লুপ

এলোমেলো দলে প্রকাশিত
জাভা, অন্যান্য প্রোগ্রামিং ভাষার মত, নেস্টেড লুপ সমর্থন করে। এই একটি লুপের মধ্যে শুধু একটি লুপ মানে. এই নিবন্ধে, আমরা জাভাতে নেস্টেড লুপগুলির সাথে কীভাবে কাজ করব সে সম্পর্কে জানতে যাচ্ছি।

জাভা নেস্টেড লুপ

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

  • যখন লুপ

  • লুপ করার সময়

  • প্রতিটি লুপের জন্য

তাদের সকলেই নেস্টেড লুপ সমর্থন করে। নেস্টেড-লুপ কনস্ট্রাক্ট ব্যবহার করা হয় যখন দুটি শর্ত পূরণ করতে হবে, একটি অন্যটির উপর নির্ভর করে। উদাহরণস্বরূপ, যদি আপনি একটি দ্বি-মাত্রিক ম্যাট্রিক্স, একটি আধা-পিরামিড বা একটি গুণন টেবিল প্রদর্শন করতে চান।

জাভা নেস্টেড লুপ কিভাবে কাজ করে

সম্ভবত জাভাতে সবচেয়ে বেশি ব্যবহৃত লুপটি হল , বড় অংশে কারণ এটি বেশ বহুমুখী এবং এর সাথে কোডটি পড়া বেশ সহজ। নেস্টেড ফর লুপের জন্য এখানে সাধারণ সিনট্যাক্স রয়েছে :

// outer loop
for (initialization; condition; increment) {
  //write here your code 

  //nested loop
  for(initialization; condition; increment) {
    //write here your code
  }
..
}
সে কিভাবে কাজ করে? বাইরের লুপ শুরু হয়। তারপর নেস্টেড ফর লুপ কাজ শুরু করে এবং শর্ত পূরণ না হওয়া পর্যন্ত তার সূচকের মধ্য দিয়ে যায় এবং আবার বাইরের লুপে কাজটি পাস করে এবং বাইরের লুপের শর্ত পূরণ না হওয়া পর্যন্ত এটি ঘটে। একটু কঠিন শোনাচ্ছে, তাই না? ঠিক আছে, একটি নির্দিষ্ট উদাহরণ দিয়ে বোঝা অনেক সহজ হবে, তাই আসুন এটিতে এগিয়ে যাই।

লুপ কোড উদাহরণ জন্য নেস্টেড

এখানে একটি ক্লাসিক উদাহরণ। এর একটি অর্ধেক পিরামিড প্রিন্ট আউট loops জন্য দুটি ব্যবহার করে . তাদের মধ্যে একটি বাসা বাঁধে।

public class NestedLoopsDemo1 {

   public static void main(String[] args) {

       for (int i = 0; i < 10; i++) {
           for (int j = 0; j<=i;  j++)
               System.out.print("*");
           System.out.println();
       }
      
   }
}
আউটপুট হল:
******************************************************** *****

Nested while লুপ কোড উদাহরণ


public class NestedLoopsDemo2 {

   public static void main(String[] args) {

       int i = 0;
       while (i < 10) {
           int j = 0;
           while (j <= i) {
               System.out.print("*");
               j++;
           }
           System.out.println();
           i++;

       }
   }
}
আউটপুট আগের উদাহরণের মতোই:
******************************************************** *****
do ...while লুপ হল while লুপের মতো । প্রধান পার্থক্য হল, do ...while লুপ এক্সপ্রেশন চেক করার আগে একবার কার্যকর করা হয়।

নেস্টেড foreach লুপ কোড উদাহরণ

for-each লুপ লুপের জন্য স্বাভাবিকের মতো নেস্ট করা যেতে পারে । এখানে নেস্টেড ফর-ইচ লুপের উদাহরণ রয়েছে যা 2-মাত্রিক অ্যারে পুনরাবৃত্তি করে।

public class NestedLoops2 {

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

           for (int[] myArray : mainArray)
           {
               for (int i : myArray)
               {
                   System.out.print(i+" ");
               }
               System.out.println("");
           }
       }
}
আউটপুট হল:
5 4 3 2 1 7 8 9 10 11

মিশ্রিত জন্য এবং যখন লুপ উদাহরণ

কখনও কখনও আমরা একে অপরের ভিতরে বিভিন্ন ধরণের লুপ বাসা বাঁধতে পারি। উদাহরণস্বরূপ, ভিতরে থাকাকালীন বা ভিতরের জন্য- প্রতিটির জন্য । যাইহোক, এটি সর্বোত্তম প্রোগ্রামিং অনুশীলন নয়। এই ধরনের গঠনগুলি কোডের পঠনযোগ্যতাকে উল্লেখযোগ্যভাবে ক্ষতিগ্রস্ত করে। তাই পেশাদার প্রোগ্রামাররা একটির সাথে অন্যটির মিশ্রণ না করার চেষ্টা করেন। ঠিক আছে, তারা করে, কিন্তু শুধুমাত্র যদি এটি সত্যিই প্রয়োজন হয়। এবং আরও একটি ছোট নিয়ম: যদি আপনি while এবং for এর মধ্যে নির্বাচন করছেন , যেখানে সম্ভব সেখানে ব্যবহার করুন। তথাপি, এখানে আমরা একটি for লুপ ব্যবহার করার একটি উদাহরণ দিতে যাচ্ছি যখন আসুন আবার আমাদের সেমি-পিরামিড তৈরি করি।

public class NestedLoopsDemo2 {

   public static void main(String[] args) {
       int i = 0;
       while (i < 10) {
           for (int j = 0; j <= i; j++) {
               System.out.print("*");
           }
           System.out.println();
           i++;

       }
   }
}
আউটপুট বিস্ময় ছাড়াই:
******************************************************** *****
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION