قسمت های دیگر این مطلب:

حلقه‌ها مانند شرط‌ها جزء لا ینفک هر برنامه‌ای هستند و وظیفه تکرار عملی خاص را دارند. حلقه‌ها گاه به تعداد مشخصی تکرار شده و برخی اوقات به تعداد نا مشخصی تکرار می‌شوند و اتمام تکرار عملیات تابع شرایط خاصی است.

البته حلقه‌ها نیز انواع مشخصی دارند که در ادامه به تعریف انواع حلقه‌ها می‌پردازیم.

حلقه for

دستور for سه پارامتر ورودی دارد که در زیر با ذکر یک مثال آن‌ها را بیان می‌کنیم:

for(int i=1; i < 11; i++){
   Log.i("for loop item", "" + i);
}

در پارامتر اول که int i=1 است ما یک متغیر به نام i به عنوان شمارنده حلقه for تعریف می‌کنیم.

در پارامتر دوم که به صورت i < 11 است، شرط ادامه حلقه را اعلام کردیم و می‌گوییم حلقه درون for تا زمانی ادامه پیدا می‌کند که i کوچکتر از 11 باشد.

در پارامتر سوم با i++ شمارنده i را در هر بار اجرای حلقه یک گام به جلو می‌فرستیم. حلقه فوق را اگر در مجازی ساز اندروید اجرا کنید نتیجه مانند زیر خواهد بود:

حلقه‌های اندروید و جاوا

حلقه while

این حلقه ساختار خاصی دارد و با ذکر یک مثال آن را شرح می‌دهیم:

int i= 0;
while(i < 11){
   Log.i("while loop item", "" + i);
   i++;
}

حلقه while فوق فقط یک پارامتر ورودی دارد و آن هم شرط بررسی سایز متغیر i است. این حلقه تا زمانی که i کوچکتر از 11 باشد اجرا خواهد شد.

البته در سطر چهارم با دستور i++; پارامتر i‌ای را که در خط اول به میزان صفر مقدار دهی کردیم افزایش می‌دهد. نتیجه اجرای دستور فوق در محیط توسعه به شکل زیر خواهد بود:

حلقه‌های اندروید و جاوا

حلقه do while

اگر دقت کرده باشید دو حلقه فوق ممکن است حتی یکبار هم اجرا نشوند و شرط همیشه در ابتدای کار چک می‌شود. مثلا به حلقه for زیر دقت کنید:

for(int i= 5; i > 6; i++){
   Log.i("Log title", "This Log not shown");
}

حلقه فوق به هیچ وجه اجرا نمی‌شود چون مقدار اولیه آن 5 است و شرط اجرای حلقه این است که مقدار i بزرگتر از 6 باشد.

حلقه do while بر عکس دو نوع حلقه فوق حتما یک بار اجرا خواهد شد. ساختار این حلقه به شکل زیر است:

int i= 0;
do{
   Log.i("do while loop", "" + i);
   i++;
}while(i < 5);

حلقه فوق برای بار اول حتما اجرا می‌شود ولی پس از هر بار تکمیل اجرا یک بار شرط حلقه در سطر آخر چک می‌شود، اگر شرط بر قرار باشد یک بار دیگر حلقه اجرا می‌شود ولی اگر نباشد اجرای حلقه پایان می‌پذیرد. اجرای این حلقه به شکل زیر خواهد بود:

حلقه‌های جاوا

دام حلقه بی نهایت

گاهی بدلیل خطاهای برنامه نویسی، حلقه‌ای توسط برنامه نویس طراحی می‌شود که پس از این که شروع به کار کند هیچ وقت متوقف نمی‌شود. این حلقه‌ها به احتمال قوی منجر به متوقف شدن برنامه می‌شوند و در پیاده سازی آن‌ها باید دائما محتاط باشید. مثال زیر را ببینید:

int i= 0;
while(i < 11){
   Log.i("while loop item", "" + i);
}

حلقه فوق با i برابر صفر شروع به کار می‌کند و هیچ وقت متوقف نمی‌شود چون درون حلقه while دستوری وجود ندارد که مقدار i را تغییر دهد. حلقه فوق معادل حلقه زیر است:

while(true){
   Log.i("while loop item", "" + i);
}

در حلقه while فوق درون حلقه دائما true و صحیح است.

دو دستور ویژه break و continue

دستور break اجرای حلقه را متوقف و برنامه را به خارج از حلقه منتقل می‌کند. مثال while(true) فوق را با دستور break اصلاح می‌کنیم:

int i= 1;
while(true){
   Log.i("while loop item", "" + i);
   if(i > 5){
      break;
   }
   i++;
}

حلقه فوق در سطر پنج با شرط i > 5 بررسی می‌شود که اگر بر قرار باشد حلقه متوقف می‌شود. نتیجه اجرای حلقه فوق مانند زیر است:

حلقه‌های جاوا

دستور continue درون حلقه اجرای خط‌های بعد از خود را متوقف و دوباره از نو حلقه را اجرا می‌کند. مثال زیر را ببینید:

int i= 1;
while(true){
   i++;
   if(i < 3){
      continue;
   }
   Log.i("while loop item", "" + i);
   if(i > 5){
      break;
   }
}

نتیجه اجرای دستور فوق به شرح زیر است:

جاوا

ارقام یک و دو در نتیجه بالا وجود ندارند چون یک شرط داشتیم که برای i‌های زیر 3 با اجرای دستور continue کنترل حلقه به ابتدا برود.

در ادامه با ما همراه باشید.

تگ ها: android studio