بک لینک

به کارگیری Loop یی از جنس do-while

oracle_java-100026145-large

به نام خدا
آموزش بیست و سوم
پس از آشنایی با اولین و پیچیده ترین نوع Loop ها در آموزش بیست و دوم، حال نوبت به
بررسی نوع دیگری از انواع Loop ها تحت عنوان while می رسد. در واقع بیشترین وجه تمایز
for و while تفاوت ساختاری است. در Loop یی از جنس while بر خالف for ما ابتدا به
ساکن می بایست متغیر خود را تعریف نماییم سپس در ()while شرط خود و یا همان نقطه پایانی
Loop را در نظر بگیریم و در داخل دو عالمت {} که مقابل ()while قرار می گیرد مقدار
rd 23 افزایش متغیر را تعریف کنیم. برای روشن تر شدن مطالب فوق، پروژه ای تحت عنوان
Session به معنی جلسه بیست و سوم ایجاد کرده سپس یک کالس تحت عنوان
WhileLoop در آن ایجاد می کنیم و مطالب فوق را در آن به صورت زیر اعمال می کنیم:
public class WhileLoop {
public static void main(String[] args) {
int number = 1;
while (number <= 10) {
System.out.println(“My Number Is: ” + number);
}
}
}
همانطور که مشاهده می کنیم، متغیری از جنس int خارج از Loop تعریف کرده ایم و Value
اولیه آن را معادل با یک قرار داده ایم. سپس ساختار اولیه Loop یی از جنس while را به شکل
{}()while نوشته ایم و به این صورت آن را تکمیل کرده ایم که شرط خود یا همان نقطه پایانی
را داخل پرانتز به صورت number <= 10 نوشته ایم. به عبارت دیگر مادامیکه مقدار متغیر ما
تحت عنوان number کوچکتر یا مساوی با ده باشد، این Loop ادامه خواهد یافت. سپس در
داخل دو عالمت {} خروجی برنامه را می نویسیم و از آنجاییکه می خواهیم خروجی برنامه ما در
پنجره Console به نمایش در آید از دستوری ;()System.out.println استفاده می کنیم و
در آن پارامتری تحت عنوان :My Number Is به معنی “عدد من هست:” به عالوه نام
متغیر خود که همان number است را می نویسیم. حال بایستی انتظار داشته باشیم پس از اجرای
برنامه مادامیکه مقدار متغیر ما کوچکتر یا مساوی با ده است این Loop اجرا شود. پس از اجرای
برنامه با موقعیتی مواجه می شویم که در تصویر زیر نشان داده شده است:
در حقیقت از آنجا که در Loop خود تعریف نکرده ایم که مقدار متغیر ما به چه میزان در هر بار
Loop شدن افزایش یابد، این Loop تا بی نهایت ادامه خواهد یافت)اگر به دایره قرمز رنگ در
عکس توجه کنیم می بینیم که نشانگر لیستی طوالنی از Loop شدن متغیر است که مسلماً بیش از
01 بار می باشد(.
برای رفع این مشکل نیاز داریم تا مقدار افزایشی متغیر خود در هر بار Loop شدن را به برنامه
اضافه کنیم. نکته ای که در اینجا می بایست مد نظر قرار دهیم این است که در while بر خالف
for این مقدار افزایشی را می بایست در داخل دو عالمت {} قرار دهیم و این در حالی است که
جای مقدار افزایشی در نحوه اجرای برنامه خیلی تعیین کننده است. برای روشن شدن این مطلب
کد خود را به شکل زیر تکمیل می کنیم:
public class WhileLoop {
public static void main(String[] args) {
int number = 1;
while (number <= 10) {
number++;
System.out.println(“My Number Is: ” + number);
}
}
}
در این کد پیش از اجرای دستور + ” :System.out.println(“My Number Is
;(number برنامه یک واحد به مقدار متغیر number اضافه کرده سپس دستور بعدی که به
نمایش در آوردن My number is: + number در پنجره Console است را اجرا می کند
که در این صورت همانطور که مالحظه می شود مقدار اولیه متغیر ما مساوی با یک است، حال
while به برنامه دستور می دهد که یک واحد به مقدار اولیه متغیر اضافه شود و در نهایت مقدار
نهایی را در پنجره Console به نمایش در آورد که این مقدار نهایی معادل با عدد دو است چرا
که مقدار افزایشی را ++number تعریف کرده ایم. خروجی برنامه در این مرحله به شکل زیر
خواهد بود:د
همانطور که انتظار می رفت اولین خروجی برنامه عدد دو است و این کار ادامه می یابد تا Loop
طراحی شده توسط ما به عدد ده می رسد. از آنجا که ما خود به برنامه دستور داده ایم مادامیکه
مقدار متغیر کوچکتر یا مساوی با ده است این کار ادامه یابد پس در فاز یکی مانده به آخر که
My Number Is: 10 می باشد جواب شرط قرار گرفته در داخل پرانتز true است پس این
Loop یک بار دیگر اجرا می شود و عدد یازدهم به نمایش در می آید اما در این مرحله از برنامه
از آنجا که جواب شرط داخل پرانتز به عدد یازده معادل با false می باشد برنامه ما از Loop
خارج خواهد شد.
حال ببینیم اگر جای مقدار افزایشی را از ماقبل دستور نمایش خروجی برنامه به بعد از آن تغییر
دهیم چه اتفاقی خواهد افتاد. برنامه خود را به شکل زیر بازنویسی خواهیم کرد:
public class WhileLoop {
public static void main(String[] args) {
int number = 1;
while (number <= 10) {
System.out.println(“My Number Is: ” + number);
number++;
}
}
}
برنامه را اجرا می کنیم:
همانطور که مالحظه می شود خروجی برنامه ما با برنامه پیشین کامالً متفاوت است. برای روشن
شدن این وجه تمایز به بررسی خط به خط کد خود می پردازیم. پس از اجرای برنامه، دستور
while می بیند که مقدار اولیه تعیین شده برای متغیر number معادل با عدد یک است و پاسخ
به شرط داخل پرانتز که می گوید این عدد می بایست کوچکتر از عدد ده باشد و یا حداکثر
مساوی با عدد ده باشد، نیز true است پس بالفاصله دستور ;()System.out.println را اجرا
می کند و در پنجره Console عبارت My Number Is: 1 به نمایش در می آید. پس از به
نمایش در آمدن عبارت My Number Is: 1 حال نوبت به اجرای دستور ++number می
رسد که عبارت از آن است که یک واحد به مقدار متغیر number اضافه کند. در واقع پس از
به نمایش در آمدن اولین عبارت یک واحد به مقدار متغیر number اضافه می شود. این کار
ادامه می یابد تا به عدد نه می رسیم. از آنجا که جواب به شرط number <= 10 معادل با true
است این Loop یک بار دیگر اتفاق می افتد و Value اختصاص داده شده به متغیر number
معادل با عدد ده می شود. حال برنامه می خواهد تا مجدداً Loop شود از اینرو اجرای برنامه یک
بار دیگر از اول شروع می شود اما از آنجا که در شرط داخل پرانتز قید کرده ایم که مقدار متغیر
می بایست کوچکتر و یا حداکثر مساوی با عدد ده باشد و در این مرحله مقدار متغیر برابر با ده
است، برنامه از Loop خارج خواهد شد و بر خالف برنامه پیشین عدد یازده به نمایش در نخواهد
آمد و برنامه ما به پایان می رسد.
در قسمت آموزشی آینده با do-while Loop ها آشنا می شویم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *