JavaRush /جاوا بلاگ /Random-UR /جاوا میں لوپ کے لیے

جاوا میں لوپ کے لیے

گروپ میں شائع ہوا۔
وہ کہتے ہیں کہ بہترین پروگرامر ایک سست پروگرامر ہے۔ ایک ہی قسم کے اعمال کو کئی بار کرنے کے بجائے، وہ ایک الگورتھم لے کر آئے گا جو اس کے لیے کام کرے گا۔ اور وہ اسے اچھی طرح کرے گا تاکہ اسے دوبارہ کرنے کی ضرورت نہ رہے۔ جاوا میں لوپ کا استعمال کیسے کریں - 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
اگر ہم اس اندراج کو انسانی زبان میں ترجمہ کرتے ہیں تو ہمیں درج ذیل ملتا ہے: " ایک متغیر i بنائیں جس کی ابتدائی قیمت 0 ہو، جب تک کہ یہ 5 تک نہ پہنچ جائے، اس میں 1 کا اضافہ کریں اور ہر قدم پر i کی قدر کنسول میں لکھیں۔ " جاوا میں لوپ کے لیے تین مراحل پر مبنی ہے، جسے درج ذیل خاکہ سے ظاہر کیا جا سکتا ہے: جاوا میں فار لوپ کا استعمال کیسے کریں - 2لوپ سے باہر نکلنے کی شرط ایک بولین اظہار ہے۔ اگر یہ غلط ہے تو، لوپ ختم ہو جائے گا. اوپر دی گئی مثال میں، متغیر کو i1 سے بڑھایا گیا ہے۔ اگر اس کی قدر 5 سے کم ہے، تو لوپ جاری رہتا ہے۔ لیکن جیسے ہی iیہ 5 سے بڑا یا اس کے برابر ہو جائے گا، سائیکل رک جائے گا۔ کاؤنٹر آپریٹر ایک اظہار ہے جو کاؤنٹر متغیر پر تبدیلی کرتا ہے۔ اوپر دی گئی مثال میں، متغیر iمیں 1 کا اضافہ کیا گیا تھا۔ یعنی، لوپ کو بالکل 5 بار عمل میں لایا جائے گا۔ اگر کاؤنٹر آپریٹر متغیر میں 2 کا اضافہ کرتا ہے iتو نتیجہ مختلف ہوگا:
for(int i = 0; i < 5; i = i + 2) {
   System.out.println(i);
}
نتیجہ:

0
2
4
آپ ایک متغیر کو بھی ضرب کر سکتے ہیں، تقسیم کر سکتے ہیں، طاقت میں اضافہ کر سکتے ہیں، عام طور پر، جو چاہیں کر سکتے ہیں۔ اہم بات یہ ہے کہ تبدیلی کا نتیجہ تعداد میں ہوتا ہے۔ لوپ کا باڈی کوئی بھی کوڈ ہے جس پر عمل کیا جا سکتا ہے۔ اوپر دی گئی مثال میں، لوپ کا باڈی کنسول میں متغیر 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]);
   }
}
اور یہ صحیح ہے۔ تاہم، صف کے تمام عناصر کو ایک ایک کرکے دہرانے کے لیے، وہ forEach تعمیر کے ساتھ آئے۔ اس کے دستخط درج ذیل ہیں:
for(<Тип element> <Name переменной, куда будет записан очередной элемент> : <Название массива>) {
	// Loop body
}
آپ تاروں کی ایک صف کے ذریعے اعادہ کر سکتے ہیں اور ہر ایک کو مندرجہ ذیل طریقے سے کنسول پر پرنٹ کر سکتے ہیں۔
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بیرونی لوپ کے کاؤنٹر تک رسائی ممکن ہے۔ یہ نیسٹڈ لوپس کو دو جہتی، تین جہتی، اور دیگر صفوں کو عبور کرنے کا ایک مثالی طریقہ بناتا ہے:
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