استفاده از بیش از یک متغیر در حلقه ها در زبان برنامه نویسی جاوا

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
در ادامه مبحث Loop ها در زبان برنامه نویسی جاوا بایستی گفت زمان هایی در طراحی پروژه ها برای برنامه نویسان پیش خواهد آمد که نیاز دارند تا در Loop خود بیش از یک متغیر را مورد سنجش قرار دهند. در واقع این مسئله به مثابه یکی از ویژگی های بسیار کاربردی در زبان برنامه نویسی جاوا است. به خاطر اهمیت این مسئله، مبحث قرار دادن بیش از یک متغیر در Loop یی از جنس for را در قالب پروژه ای کاربردی توضیح خواهیم داد. طبق روال گذشته ابتداً نیاز به یک سناریو داریم:

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

برای این منظور پروژه ای جدید تحت عنوان Helping My Sibling به معنی "کمک به خواهر/برادرم" ایجاد می کنیم (علت اینکه از واژه انگلیسی Sibling استفاده می کنیم این است که هم مفهوم Sister به معنی "خواهر" را و هم مفهوم Brother به معنی "برادر" را شامل می شود.) یک کلاس در پروژه خود تحت عنوان MyMultiplyProgram به معنی "برنامه ضرب من" ایجاد می کنیم. در این پروژه می خواهیم حاصل ضرب عدد دو را در دیگر اعداد از یک تا پنجاه به خواهر یا برادرمان آموزش دهیم. به عبارت دیگر می خواهیم برنامه پاسخ هایی از جنس دو یکی دو تا، دو دو تا چهار تا و دو سه تا شش تا و الی آخر را به ما نشان دهد.

از آنجا که می خواهیم نحوه به کار گیری دو متغیر را در Loop یی از جنس for را آموزش دهیم، نیاز داریم تا دو متغیر تحت عناوین numberOne و numberTwo تعریف کنیم. در این مرحله از برنامه، کد ما به شکل زیر خواهد بود:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
}
}
در واقع متغیر numberOne قرار است عدد دو را در خود جای دهد که در دیگر اعدادی که در متغیر numberTwo ذخیره می شوند ضرب شود. حال Block مرتبط با for را به برنامه اضافه می کنیم و کد ما به شکل زیر تکمیل خواهد شد:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for () {
}
}
}
در این مرحله همان طور که قبلاً آموزش داده شده است، می بایست پارامترهای داخل پرانتز را با نقطه آغازین Loop و نقطه پایانی و در نهایت مقدار افزایشی تکمیل کنیم. برای این منظور کد فوق را به شکل زیر تکمیل می کنیم:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for (numberOne = 2, numberTwo = 1;) {
}
}
}
نکته
نکته جدیدی که در این آموزش حتماً می بایست مد نظر قرار داده شود این است که هر موقع بخواهیم بیش از یک متغیر را برای Loop یی در نظر بگیریم، می بایست متغیر ها را با یک کاما از یکدیگر جدا ساخته و پس از آخرین متغیر یک علامت ; قرار دهیم. در این مثال مقدار اولیه برای متغیر numberOne را عدد دو در نظر گرفته ایم و مقدار اولیه برای متغیر numberTwo را عدد یک در نظر می گیریم چرا که قرار است برنامه از حاصل ضرب دو یکی دو تا شروع به اجرا کند.
از آنجا که قرار است حاصل ضرب عدد دو را از یک تا پنجاه به خواهر و یا برادر خود آموزش دهیم، از این رو در شرط نقطه پایانی برنامه قید می کنیم که این برنامه تا جایی ادامه یابد که حاصل ضرب عدد دو در عدد دیگر کوچکتر از یا مساوی با عدد صد شود. حال کد خود را به شکل زیر تکمیل می کنیم:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for (numberOne = 2, numberTwo = 1; numberTwo*numberOne <= 100;) {
}
}
}
پس از آن که یک علامت ; پس از شرط نقطه پایانی Loop قرار دادیم، نوبت به تعریف کردن چگونگی اضافه شدن متغیر numberTwo می رسد. در واقع از آنجا که مقدار متغیر numberOne که معادل با دو است و همواره ثابت است، فقط نیاز است تا مقدار متغیر numberTwo یکی یکی افزایش یابد. به عبارت دیگر در این برنامه نیاز داریم تا در هر بار Loop شدن، یک واحد به متغیر numberTwo اضافه شود زیرا می خواهیم عدد دو را در دیگر اعداد ضرب کنیم که این اعداد از یک شروع شده و به عدد پنجاه ختم می شوند. از این رو کد ما می بایست به شکل زیر تکمیل شود:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for (numberOne = 2, numberTwo = 1;
numberTwo*numberOne<=100; numberTwo++) {
}
}
}
حال که شرط Loop برنامه خود را تکمیل کردیم، نوبت به نوشتن کد برای خروجی برنامه می رسد. برای این منظور می بایست دستور خروجی برنامه را مابین دو علامت { } که مقابل for قرار گرفته اضافه نماییم. می خواهیم تا اولین خروجی برنامه به صورت The result of 2 * 1 is 2 به معنی "نتیجه دو در یک می شود دو" نمایش داده شود. از این رو می بایست دستور ;()System.out.println را به شکلی تکمیل کنیم که چنین خروجی را در پنجره کنسول به نمایش در آورد. کد تکمیل شده برنامه به شکل زیر خواهد بود:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for (numberOne = 2, numberTwo = 1; numberTwo * numberOne <= 100; numberTwo++) {
System.out.println("The result of " + numberOne + " * " + numberTwo + " is " + (numberOne * numberTwo));
}
}
}
اکنون به توضیح آنچه مابین دو پرانتز ;()System.out.println قرار گرفته است خواهیم پرداخت. در ابتدا می خواهیم که عبارت The result of به معنی "نتیجه ی" ابتدای خط در پنجره کنسول به نمایش در آید. برای همین منظور عبارت فوق را مابین " " قرا می دهیم. سپس نیاز داریم تا بگوییم مثلاً دو ضرب در یک، از اینرو یک علامت + قرار داده و نام متغیر اول که numberOne است را می نویسیم سپس نیاز داریم تا علامت * روی صفحه مانیتور به نمایش در آید اما اگر خود علامت * را پس از متغیر numberOne بنویسیم، برنامه به شکل یک Operator به آن نگاه می کند پس باید پس از قرار دادن یک علامت + آن را داخل دو علامت " " قرار دهیم که در حین کامپایل شدن برنامه، اکلیپس آن را به عنوان یک کاراکتر مد نظر قرار دهد. سپس یک علامت + دیگر قرار داده و نام متغیر دوم که numberTwo است را می نویسیم. تا اینجای کار اولین خروجی برنامه The result of 2*1 خواهد بود. حال یک علامت + دیگر قرار داده و واژه ی is را به معنی "هست" داخل دو علامت " " می نویسیم. در این مرحله، خروجی برنامه The result of 2*1 is خواهد شد. همان طور که در آموزش های پیشین توضیح داده شد هر زمانی که بخواهیم یک عمل ریاضیاتی را به طور مجزا از دیگر بخش های برنامه اجرا کنیم، می بایست تا آن را داخل دو پرانتز قرار دهیم و از آنجا که در این برنامه می خواهیم حاصل ضرب مقادیر متغیرهای numberOne و numberTwo را به دست آوریم، پس نیاز داریم تا عبارتی همچون (numberOne*numberTwo) را نیز پس از نوشتن یک علامت + به آخر کد اضافه کنیم. در این مرحله برنامه ما تکمیل شده است و می توانیم آن را اجرا کنیم:

f362f651bc43e0ccc33597f293a46ffc.jpg


همان طور که در تصویر بالا مشاهده می شود برنامه ما به درستی کار می کند. فلش قرمز رنگ به معنی آن است که این لیست ادامه داشته و تا نشان دادن حاصلضرب عدد دو ضرب در پنجاه ادامه خواهد یافت. در واقع از آنجا که حاصل ضرب عدد دو در پنجاه مساوی با صد خواهد بود و در Loop خود تعریف کرده ایم که تا عدد صد این Loop ادامه یابد، از این رو برنامه پس از رسیدن به عدد صد از حلقه خارج خواهد شد.

پیش از به پایان رساندن این بخش از آموزش نیاز است تا دو نکته یادآوری شود. نکته اول از این قرار است که ما می توانیم با Operator هایی همچون به علاوه و منها انواع متغیرها را نه تنها با یکدیگر بلکه حتی با استرینگ ها نیز ادغام کنیم که در این صورت خروجی برنامه یک استرینگ خواهد بود. نکته دوم این که برای خوانایی بیشتر خروجی برنامه می توان از Space قبل و بعد از علامت ضرب که داخل دو علامت " " قرار گرفته است استفاده کرد. برای روشن شدن مطلب کد فوق را به شکل زیر تغییر می دهیم:

public class MyMultiplyProgram {
public static void main(String[] args) {
int numberOne;
int numberTwo;
for (numberOne = 2, numberTwo = 1; numberTwo * numberOne <= 100; numberTwo++) {
System.out.println("The result of" + numberOne + "*" + numberTwo + "is" + (numberOne * numberTwo));
}
}
}
چنانچه برنامه را اجرا کنیم، خروجی برنامه مشابه تصویر زیر خواهد بود:

ad66a7d2286ae06e69b34718172bc25b.jpg


در تصویر فوق مشاهده می شود که نحوه عملکرد برنامه هیچ تغییری نکرده است با این تفاوت که به خاطر حذف Space ها خوانایی جملات به مراتب کمتر شده است.

در این مرحله از آموزش، برنامه نویسان مبتدی خواهند توانست تا با تسلط به مباحث Loop نرم افزار هایی از این دست -یا حتی پیچیده تر- طراحی نمایند. به طور مثال با تلفیق کلاس Scanner و همچنین Loop ها می توان برنامه ای طراحی کرد تا به طور مثال خواهر یا برادر ما به سادگی بتواند مثلاً در مثال بالا numberOne را خود برای نرم افزار تعریف کند و خروجی برنامه را ببیند. به عبارت دیگر به جای آن که عدد دو در دیگر اعداد ضرب شود، عدد دیگری همچون عدد هفت از طریق کیبورد وارد برنامه شده و حاصل ضرب این عدد در دیگر اعداد نمایش داده خواهد شد.
 

برخی موضوعات مشابه

بالا