CodeGym /جاوا بلاگ /Random-UR /جاوا نیسٹڈ لوپس
John Squirrels
سطح
San Francisco

جاوا نیسٹڈ لوپس

گروپ میں شائع ہوا۔
جاوا، دیگر پروگرامنگ زبانوں کی طرح، نیسٹڈ لوپس کو سپورٹ کرتا ہے۔ اس کا مطلب ہے صرف ایک لوپ کے اندر ایک لوپ۔ اس آرٹیکل میں، ہم جاوا میں نیسٹڈ لوپس کے ساتھ کام کرنے کا طریقہ جاننے جا رہے ہیں۔

جاوا نیسٹڈ لوپس

ایک لوپ کو نیسٹڈ کہا جاتا ہے اگر اسے کسی دوسرے لوپ کے اندر رکھا جائے۔ پہلے پاس پر، بیرونی لوپ اندرونی لوپ کو کہتے ہیں، جو مکمل ہونے تک چلتا ہے، جس کے بعد کنٹرول بیرونی لوپ کے جسم میں منتقل ہو جاتا ہے۔ دوسرے پاس پر، بیرونی لوپ اندرونی کو دوبارہ کال کرتا ہے۔ اور اسی طرح بیرونی لوپ ختم ہونے تک۔ جاوا میں چار قسم کے لوپس ہیں:
  • لوپ کے لئے

  • جبکہ لوپ

  • کرو...وائل لوپ

  • ہر ایک لوپ کے لیے

یہ سب نیسٹڈ لوپس کو سپورٹ کرتے ہیں۔ نیسٹڈ لوپ کنسٹرکٹس کا استعمال اس وقت کیا جاتا ہے جب دو شرائط کو پورا کرنا ضروری ہے، ایک دوسرے پر منحصر ہے۔ مثال کے طور پر، اگر آپ کو دو جہتی میٹرکس، نیم اہرام یا ضرب کی میز ظاہر کرنے کی ضرورت ہے۔

جاوا نیسٹڈ لوپس کیسے کام کرتے ہیں۔

شاید جاوا میں سب سے زیادہ استعمال ہونے والا لوپ بڑے حصے میں ہے کیونکہ یہ کافی ورسٹائل ہے اور اس کے ساتھ کوڈ پڑھنا کافی آسان ہے۔ نیسٹڈ فار لوپ کا عمومی نحو یہ ہے :
// outer loop
for (initialization; condition; increment) {
  //write here your code

  //nested loop
  for(initialization; condition; increment) {
    //write here your code
  }
..
}
وہ کیسے کام کرتا ہے؟ بیرونی لوپ شروع ہوتا ہے۔ پھر نیسٹڈ فار لوپ کام شروع کرتا ہے اور اپنے انڈیکس سے گزرتا ہے جب تک کہ شرط پوری نہ ہو جائے، اور دوبارہ کام کو بیرونی لوپ تک پہنچاتا ہے، اور یہ اس وقت تک ہوتا ہے جب تک کہ بیرونی لوپ کی شرط پوری نہ ہو جائے۔ تھوڑا مشکل لگتا ہے، ہے نا؟ ٹھیک ہے، ایک مخصوص مثال سے اسے سمجھنا بہت آسان ہو جائے گا، تو آئیے اس کی طرف بڑھتے ہیں۔

لوپ کوڈ مثال کے لیے نیسٹڈ

یہاں ایک کلاسک مثال ہے۔ آئیے دو فار لوپس کا استعمال کرتے ہوئے آدھے پرامڈ کو پرنٹ کریں ۔ ان میں سے ایک گھونسلا ہے۔
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 لوپ جبکہ لوپ سے ملتا جلتا ہے۔ بنیادی فرق یہ ہے کہ do...while لوپ کو ایکسپریشن چیکنگ سے پہلے ایک بار عمل میں لایا جاتا ہے۔

نیسٹڈ فاریچ لوپس کوڈ کی مثال

for-each loop کو ہمیشہ کی طرح لوپ کے لیے نیسٹ کیا جا سکتا ہے ۔ یہاں nested 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 loop کو استعمال کرنے کی ایک مثال دینے جا رہے ہیں while ۔ آئیے اپنا نیم اہرام دوبارہ بنائیں۔
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