مقادیر شروع و پایان حلقه

ما مقادیر شروع و پایان حلقه for را درون حلقه تایپ کردیم. می توان این مقادیر را از textbox نیز دریافت کرد. برای این کار به مثال زیر توجه کنید.

دو textbox به فرم خود اضافه کنید. دو label نیز اضافه کرده و text اولی را Loop Start و دومی را Loop End تعیین کنید:

مقادیر شروع و پایان حلقه

 

ما توسط این دو textbox مقدار شروع و پایان حلقه را گرفته و در حلقه از آن استفاده می کنیم.

روی button (در بخش قبل ایجاد کردیم) دو بار کلیک کرده و دو متغیر زیر را تعریف می کنیم:

int loopStart;
int loopEnd;

این دو متغیر برای گرفتن مقادیر از textboxها به کار برده می شوند بنابراین باید مقادیر هر textbox را بگیریم سپس به عدد تبدیل کرده و درون آنها بریزیم. برای این منظور به صورت زیر عمل می کنیم:

loopStart = int.Parse(textBox1.Text);
loopEnd = int.Parse(textBox2.Text);

حال که مقادیر مورد نظر (شروع و پایان حلقه) را داریم می توانیم حلقه خود را تعریف کنیم و از این مقادیر در آن استفاده کنیم:

for (int i = loopStart; i < loopEnd; i++)
{
answer = answer + i;
}

برنامه را اجرا کرده و آن را با اعداد مختلف امتحان کند. برای مثال مقدار شروع را ۱ و مقدار پایان حلقه را ۱۰ قرار دهید. باید به مقدار ۴۵ برای نتیجه جمع اعداد ۱ تا ۱۰ برسید. اگر دقت کرده باشید نتیجه ۵۵ می شود نه ۴۵٫ مشکل اینجاست که برنامه عدد ۱۰ را با نتیجه جمع اعداد قبل جمع نمی کند. دلیل این امر این است که ما باید i < loopEnd را به صورت i <= loopEnd تعریف کنیم تا ۱۰ نیز جمع شود. یعنی وقتی i < loopEnd باشد مقدار پایان حلقه در جمع محاسبه نمی شود.

مشکل دیگری که در این برنامه وجود دارد این است که اگر هیچ مقدار در textbox ها وارد نکنیم برنامه با خطا مواجه می شود زیرا چیزی برای تبدیل به عدد نمی یابد.

/ 0 نظر / 14 بازدید