JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ لوپ لاء

جاوا ۾ لوپ لاء

گروپ ۾ شايع ٿيل
چون ٿا ته بهترين پروگرامر هڪ سست پروگرامر آهي. ساڳئي قسم جي عملن کي ڪيترائي ڀيرا انجام ڏيڻ جي بدران، هو هڪ الگورتھم سان گڏ ايندو جيڪو هن لاء ڪم ڪندو. ۽ اھو اھو چڱيءَ طرح ڪندو ته جيئن ان کي ٻيهر ڪرڻ جي ضرورت نه پوي. جاوا ۾ لوپ لاءِ ڪيئن استعمال ڪجي - 1ساڳئي ڪوڊ کي بار بار لکڻ کان بچڻ لاء، لوپ ايجاد ڪيا ويا. اچو ته تصور ڪريون ته اسان کي 0 کان 99 تائين ڪنسول تائين نمبر ڏيکارڻ گهرجن. ڪوڊ بغير لوپ جي:
System.out.println(0);
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
// And so on
هي ڪوڊ 100 لائينون وٺي ويندي! انيڪ. ۽ هتي اهو آهي ته اهو هڪ لوپ سان ڪهڙو نظر ايندو:
for(int i = 0; i < 100; i++) {
   System.out.println(i);
}
صرف 3 لائنون!

لوپ لاء ڇا آهن؟

A for loop پروگرام ڪوڊ جو هڪ ڪنٽرول ڍانچو آهي جيڪو الگورتھم جي عمل جي لڪير کي ٽوڙي ٿو ۽ توهان کي ڪيترن ئي ڀيرا مخصوص ڪوڊ تي عمل ڪرڻ جي اجازت ڏئي ٿو. مثال طور، توهان کي دوا جي 30 ڦڙا وٺڻ جي ضرورت آهي. الورورٿم ڪجهه هن طرح ٿيندو:
  1. هڪ گلاس تيار ڪريو.
  2. لڪي کوليو.
  3. 1 بوند حاصل ڪريو.
  4. 2 ڦڙا حاصل ڪريو.
  5. ...
  6. 30 بوند حاصل ڪريو.
  7. دوا بند ڪريو.
  8. حاصل ڪيل حصو وٺو.
هي الگورتھم وڌيڪ جلدي وضاحت ڪري سگهجي ٿو:
  1. هڪ گلاس تيار ڪريو.
  2. ڊريپ ڪيپ کوليو.
  3. 30 ڦڙا حاصل ڪريو.
  4. دوا بند ڪريو.
  5. حاصل ڪيل حصو وٺو.
اسان ٻين ماڻهن سان گفتگو ۾ تقريباً هر روز لاءِ لوپ استعمال ڪندا آهيون: ”...20 قدم گهٽيءَ ۾...“، ”...ڪرو 10 ورجائي ۽ ٻيو 5 2 ڀيرا سست...“، ”.. ڪريو 5 خريداريون مختلف ڪيٽيگريز ۾ ۽ انعام حاصل ڪريو...“ مان گهڻي وقت تائين هلي سگهيس، پر مطلب صاف آهي. جاوا ۾، لوپ لاء ضروري آهي ڪوڊ کي مختصر ۽ جامع رکڻ لاء.

لوپ ڪيئن ڪم ڪندو آهي

A for loop هن طرح استعمال ڪيو ويندو آهي:
for(<начальная точка>; <condition выхода>; <операторы счетчика>) {
	// Loop body
}
Пример перебора цифр от 0 до 5 и вывод каждой в консоль:
for(int i = 0; i < 5; i++) {
   System.out.println(i);
}
نتيجو:

0
1
2
3
4
جيڪڏهن اسان هن داخلا کي انساني ٻولي ۾ ترجمو ڪريون ٿا، اسان کي هيٺيون ملن ٿيون: " 0 جي شروعاتي قيمت سان هڪ متغير i ٺاهيو، جيستائين اهو 5 تائين پهچي، ان ۾ 1 شامل ڪريو ۽ هر قدم تي ڪنسول ۾ i جي قيمت لکو ." جاوا ۾ لوپ لاءِ ٽن مرحلن تي مبني آھي، جنھن کي ھيٺين آريگرام سان ظاھر ڪري سگھجي ٿو: جاوا ۾ لوپ لاءِ ڪيئن استعمال ڪجي - 2لوپ مان نڪرڻ لاءِ شرط ھڪڙو Boolean ايڪسپريشن آھي. جيڪڏهن اهو غلط آهي، لوپ ختم ٿي ويندو. مٿين مثال ۾، متغير i1 سان وڌايو ويو آهي. جيڪڏهن ان جي قيمت 5 کان گهٽ آهي، لوپ جاري آهي. پر جيئن ئي iاهو 5 کان وڏو يا برابر ٿيندو، اهو چڪر بند ٿي ويندو. ڪائونٽر آپريٽر هڪ اظهار آهي جيڪو ڪاؤنٽر متغير تي تبادلي کي انجام ڏئي ٿو. مٿي ڏنل مثال ۾، متغير i1 کان وڌايو ويو آهي، اهو آهي، لوپ تي عمل ڪيو ويندو 5 ڀيرا. جيڪڏهن انسداد آپريٽر 2 کي متغير ۾ شامل ڪري ٿو i، نتيجو مختلف ٿيندو:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
نتيجو:

0
2
4
توھان پڻ ڪري سگھو ٿا ھڪڙي متغير کي ضرب، ورهائي، ھڪڙي طاقت کي وڌايو، عام طور تي، جيڪو توھان چاھيو ٿا. بنيادي شيء اها آهي ته تبديلي جي نتيجي ۾ هڪ نمبر. لوپ جو جسم ڪو به ڪوڊ آهي جيڪو عمل ڪري سگهجي ٿو. مٿي ڏنل مثال ۾، لوپ جو جسم variable i جي قدر کي ڪنسول تائين پهچائي رهيو هو، پر هن جسم جو مواد ڪم ۽ تخيل تائين محدود آهي. سڄي اسڪيم کي اختصار ڪندي، لوپ لاءِ هن جو اصول هن ريت آهي: اهو ڪوڊ جيڪو لوپ جي باڊي ۾ هوندو، اوترو ئي ڀيرا عمل ڪيو ويندو، جيترا ڀيرا ڪائونٽر آپريٽر ڪندو، لوپ مان نڪرڻ جي شرط پوري ٿيڻ کان اڳ. . جيڪڏهن توهان لوپ نڪرڻ واري حالت کي ترتيب ڏيو جيئن true:
for(int i = 0; true; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
ان کان پوء لوپ کان پوء ڪوڊ هڪ غلطي سان نشان لڳايو ويندو unreachable statement، ڇاڪاڻ ته اهو ڪڏهن به عمل نه ڪيو ويندو. ذهانت لاءِ هڪ چيلنج: هيٺ ڏنل ڪوڊ هلائڻ جي نتيجي ۾، ڇا “ Loop ended” ڪنسول ڏانهن آئوٽ ٿي ويندو يا لوپ لامحدود طور تي هلندو؟
for(int i = 0; i > -1; i++) {
   if(i % 1000000 == 0) System.out.println(i);
}
System.out.println("Loop ended");
جواب: هوندو. متغير i جلد يا بعد ۾ ان جي وڌ ۾ وڌ قدر تائين پهچي ويندو، ۽ وڌيڪ اضافو ان کي وڌ ۾ وڌ منفي قدر ۾ تبديل ڪندو، جنهن جي نتيجي ۾ نڪرڻ واري حالت مطمئن ٿي ويندي (i < = -1).

هر لوپ لاء

جڏهن لوپ سان ڪم ڪري رهيا آهيو، توهان کي ڪڏهن ڪڏهن صفن يا مجموعن تي ٻيهر ڪرڻو پوندو. عام طور تي توهان لوپ لاءِ استعمال ڪندي هڪ صف ذريعي ٻيهر ڪري سگهو ٿا:
public void printAllElements(String[] stringArray) {
   for(int i = 0; i < stringArray.length; i++) {
       System.out.println(stringArray[i]);
   }
}
۽ اهو صحيح آهي. بهرحال، هڪ هڪ ڪري صف جي سڀني عناصرن کي ٻيهر ڏيڻ لاء، اهي آيا هر هڪ تعمير لاء. ان جي دستخط هن ريت آهي:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
توھان ڪري سگھوٿا strings جي ھڪڙي ترتيب ذريعي ۽ ھر ھڪڙي کي ھيٺ ڏنل طريقي سان ڪنسول ڏانھن پرنٽ ڪري سگھو ٿا:
public void printAllElements(String[] stringArray) {
   for(String s : stringArray) {
       System.out.println(s);
   }
}
پڻ مختصر ۽ مختصر. سڀ کان وڌيڪ ضروري آهي، ڪو به ضرورت ناهي ته ڪائونٽر ۽ نڪرڻ واري حالت بابت سوچڻ جي ضرورت آهي، سڀ ڪجهه اسان لاء اڳ ۾ ئي ڪيو ويو آهي.

لوپ لاء ڪيئن استعمال ٿيندا آهن

ھاڻي اچو ته مختلف مسئلن کي حل ڪرڻ لاءِ جاوا ۾ for loop استعمال ڪرڻ جا ڪجھ مثال ڏسو.

ريورس چڪر (وڏي کان ننڍي تائين)

for(int i = 5; i > 0; i--) {
   System.out.println(i);
}
نتيجو:

5
4
3
2
1

ڪيترائي متغير ۽ لوپ جسم ۾ انسداد کي وڌائڻ

توھان استعمال ڪري سگھو ٿا گھڻن متغيرن لاءِ لوپ ۾، مثال طور اھي بدلائي سگھجن ٿا جوابي بيان ۾:
int a = 0;
for(int i = 5; i > 0; i--, a++) {
   System.out.print("Step: " + a + " Meaning: ");
   System.out.println(i);
}
نتيجو:

Шаг: 0 Значение: 5
Шаг: 1 Значение: 4
Шаг: 2 Значение: 3
Шаг: 3 Значение: 2
Шаг: 4 Значение: 1
يا ٻه متغير ۽ لوپ جو اعلان ڪريو جيستائين اهي هڪ ٻئي جي برابر نه هجن:
for(int i = 5, j = 11; i != j; i++, j--) {
   System.out.println("i: " + i + " j: " + j);
}
نتيجو:

i: 5 j: 11
i: 6 j: 10
i: 7 j: 9
اهو ممڪن ناهي ته هن عمل جي ڪا به قيمت هجي، پر هن امڪان بابت ڄاڻڻ مفيد آهي. توهان پڻ ٺاهي سگهو ٿا اندروني لوپ لاءِ لوپ اندر. انهي حالت ۾، لوپ قدمن جو تعداد وڌايو ويندو:
for(int i = 0; i < 5; i++) {
   System.out.print(i + " | ");
   for(int j = 0; j < 5; j++) {
       System.out.print(j + " ");
   }
   System.out.print('\n');
}
نتيجو:

0 | 0 1 2 3 4 
1 | 0 1 2 3 4 
2 | 0 1 2 3 4 
3 | 0 1 2 3 4 
4 | 0 1 2 3 4
هڪ انسداد لوپ ۾، jٻاهرئين لوپ جي انسداد تائين رسائي ممڪن آهي. هي nested loops ٺاهيندو آهي هڪ مثالي طريقو ٻه-dimensional، ٽي-dimensional، ۽ ٻين صفن کي پار ڪرڻ لاءِ:
int[][] array = { {0, 1, 2, 3, 4 },
                       {1, 2, 3, 4, 5},
                       {2, 3, 4, 5, 6},
                       {3, 4, 5, 6, 7}};

for(int i = 0; i < array.length; i++) {
   for(int j = 0; j < array[i].length; j++) {
       System.out.print(array[i][j] + " ");
   }
   System.out.print('\n');
}
نتيجو:

0 1 2 3 4 
1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 

شروعاتي چڪر جي مڪمل ٿيڻ

جيڪڏهن توهان کي لوپ کي پروسيس ڪرڻ دوران هڪ لوپ ۾ مداخلت ڪرڻ جي ضرورت آهي، استعمال ڪريو آپريٽر break، جيڪو لوپ جي موجوده جسم کي روڪي ٿو. سڀئي ايندڙ ورهاڱي پڻ ڇڏيا ويا آهن:
public void getFirstPosition(String[] stringArray, String element) {
   for (int i = 0; i < stringArray.length; i++) {
       if(stringArray[i].equals(element)) {
           System.out.println(i);
           break;
       }
   }
}
طريقو صف ۾ پهرين ڳولها عنصر جي پوزيشن کي پرنٽ ڪندو:
String[] array = {"one", "two", "three", "Jeronimo"};
getFirstPosition(array, "two");
نتيجو:

1

لاتعداد چڪر

لوپ لاءِ لامحدود ٺاھڻ جو ٻيو طريقو آھي ڪاؤنٽر ڊڪليئريشن ايريا، ٻاھر نڪرڻ واري حالت، ۽ جوابي بيان کي خالي ڇڏڻ:
for (;;) {
}
پر ذهن ۾ رکو ته اڪثر ڪيسن ۾ هڪ لامحدود لوپ هڪ منطقي غلطي جو ثبوت آهي. اهڙي لوپ کي نڪرڻ شرط هجڻ گهرجي. جاوا ۾ لوپ لاءِ ڪيئن استعمال ڪجي - 3
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION