حلقه While
نوع دیگری از حلقه که می توانید از آن استفاده کنید، حلقه while نام دارد. یادگیری این نوع حلقه بسیار ساده تر از حلقه For است. ساختار حلقه while را ببینید:
while(شرط){ کد }
با نوشتن کلمه “while” شروع می کنیم و سپس پرانتز باز و بسته و در داخل پرانتز شرط مورد نظر نوشته می شود. سپس براکت ها نوشته می شوند و در میان آن ها نیز کدی که می خواهیم تکرار شود را می نویسیم. کد زیر یک مثال از چاپ یک پیغام با ۵ بار تکرار است. آن را نوشته و امتحان کنید:
int loopVal = 0; while(loopVal<5){ System.out.println("Printing some text"); loopVal++; }
شرط درون پرانتز را ببینید. این شرط بیان می دارد که ما می خواهیم کد میان براکت ها تا زمانی که مقدار درون متغیر loopVal از ۵ کوچکتر است تکرار شود. حالا به کد میان براکت نگاه کنید. ابتدا یک متن چاپ می شود و سپس مقدار درون متغیر loopVal یک واحد افزایش می یابد. اگر این افزایش را انجام ندهیم، آنگاه شرط درون پرانتز همواره برقرار خواهد بود و برنامه از درون حلقه هیچ گاه خارج نمی شود! پس ما از این شمارنده استفاده کردیم تا بتوانیم به تعداد دلخواه خود کد را تکرار کنیم. این نوع از حلقه برای مواردی که ما احتیاج به چک کردن یک مقدار داریم و به شماردن احتیاجی نیست بیشتر استفاده می شود. برای مثال در یک بازی می خواهیم تا دکمه ای از صفحه کلید فشرده نشده است، عملی تکرار شود. مثلا تا دکمه X فشرده نشده داخل بازی بمانیم و زمانی که فشرده شد از بازی خارج شویم. مثال دیگر می تواند خواندن یک فایل متنی باشد تا زمانی که به انتهای آن نرسیده ایم باشد.
Do … While
یک مدل دیگری از حلقه while به نام do…while وجود دارد. که ساختار آن را مشاهده می کنید:
int loopVal = 0; do{ System.out.println("Printing some text"); loopVal++; } while(loopVal<5);
دوباره جاوا مانند کد قبل تا زمانی که مقدار درون متغیر loopVal از ۵ کوچکتر است کد میان دو براکت را اجرا می کند. تفاوت بین دو کد قبل این است که در کد اول تا ابتدا شرط چک می شود و اگر برقرار بود کد میان براکت ها اجرا می شود ولی در کد دوم، ابتدا بدون توجه به شرط، کد میان دو براکت یک بار اجرا می شود و سپس شرط برای اجرای مراحل بعد چک می شود. برای مثال اگر ما در خط اول به جای ۰ مقدار ۶ را در متغیر loopVal ذخیره می کردیم، در while ساده، کد درون براکت حتی یک بار هم اجرا نمیشد زیرا ابتدا شرط چک می شد و چون شرط برقرار نبود به داخل حلقه نمی رفت. اما در do…while بدون توجه به شرط ابتدا یک بار کد میان دو براکت اجرا می شود و بعد از آن به شرط رسیده و شرط را چک می کند که برقرار نیست و دفعه بعد کد درون براکت ها اجرا نمی شود.
بحث حلقه ها به پایان رسید. اگر هنوز به خوبی با آن ارتباط برقرار نکرده اید نگران نباشید. در بخش های بعدی بیشتر با حلقه ها سر و کار داریم.
در بخش بعد به معرفی آرایه ها می پردازیم…