بسم الله الرحمن الرحیم
باسلام...
در جلسه قبل یکی از مهمترین ساختار های برنامه نویسی (ساختار شرطی if..else) رو بررسی کردیم. با عملوندها و عملگرها آشنا شدیم. امیدوارم درس قبل رو بخوبی متوجه شده باشید.
در این جلسه به امید خدا در مورد ساختارهای تکرار صحبت می کنیم و یکی از مهمترین ساختارهای تکرار در برنامه نویسی سی شارپ رو با هم یاد می گیریم.
قبل از هرچیز باید ببینیم ساختار تکرار چی هست و چه کاربردی داره. در بیشتر مواقع نیاز داریم که یک کار تکراری رو بارها و بارها انجام بدیم. مثلا نام و نام خانوادگی 1000 نفر رو بپرسیم، عددهای زوج بین 2 تا 256 رو با هم جمع کنیم، فاکتوریل یک عدد رو محاسبه کنیم. رنگ یک دکمه رو بصورت متوالی قرمز و آبی کنیم و...
به ساختارهای تکرار، حلقه هم می گویند.
یکی از ساختارهای مهم تکرار ، ساختار while هست. به شکل کلی این ساختار توجه کنید:
while(Conditional Expression){ Commands set }
حلقه while ، تا زمانی که عبارت شرطی داخل پرانتز برابر با true باشد، مجموعه دستورات داخل آکولاد را اجرا می کند. ممکنه این عبارت هیچوقت برابر با false نشود، بنابراین حلقه تا بی نهایت ادامه پیدا می کند. اگر حلقه بصورت بی نهایت باشد، پس از اینکه مدتی از اجرای حلقه بگذرد برنامه با خطای Stack Overflow مواجه خواهد شد.(حالا فعلا کاری نداریم که این خطا چی هست).
بذارید در عمل با طرز کار این حلقه آشنا شویم. یک پروژه جدید بسازید و یک TextBox و یک دکمه روی فرم آن قرار دهید. خاصیت Name مربوط به شیئ TextBox رو به txtDisplay تغییر دهید.
برنامه پایین رو برای دکمه بنویسید. (البته اینکه می گوییم فلان برنامه رو برای دکمه بنویسید اصطلاح درستی نیست، بعدا که با "رویدادها" آشنا شدیم، متوجه خواهید شد)
while (txtDisplay.Text.Length < 5) { txtDisplay.Text = txtDisplay.Text + "A"; }
این برنامه تا زمانی که طول متن داخل TextBox کمتر از 5 حرف باشد، حرف A را به TextBox اضافه می کند.
نکات جدید برنامه:
- برای بدست آوردن طول هر رشته ای می توانیم از خصوصیت Length آن رشته استفاده کنیم. دقت کنید که چطور طول متن داخل TextBox را بدست آورده ایم، سپس آنرا با 5 مقایسه کرده ایم.
- به دستور "txtDisplay.Text=txtDisplay.Text+"A دقت کنید. به دستورهایی که در آنها علامت = وجود دارد، اصطلاحا "بیان انتساب" می گوییم. همیشه قسمت سمت راست علامت مساوی محاسبه شده سپس نتیجه آن به قسمت سمت چپ هدایت خواهد شد. باید توجه داشته باشید که مقدار قبلی قسمت سمت چپ با مقدار جدید جایگزین می شود.
- در هر دور حلقه ، به متن داخل TextBox حرف A اضافه می شود. پس طبیعتا طول متن داخل TextBox زیادتر می شود؛ اما حلقه تا زمانی دستورهای داخل بلوک خود را اجرا میکند که طول متن کمتر از 5 باشد.
int MyIntVariable=124313;
در عبارت بالا MyIntVariable ، نام متغیر بوده و کاملا صلیقه ای هست. کلمه کلیدی int به کامپیوتر می فهماند که باید یک متغیر نوع صحیح (Integer) بسازد. قسمت بعد از علامت مساوی کاملا اختیاری بوده و می توانید از آن صرف نظر کنید؛ این قسمت مقدار اولیه متغیر را مشخص می کند.
برای تعریف متغیرهای اعشاری به روش زیر عمل می کنیم:
float MyFloatVariable=3.1415f;
تنها نکته در مورد متغیرهای اعشاری این است که اگر دقت کنید بعد از عدد 3.1415 از حرف f استفاده کرده ایم. البته این کار ما علت هایی داره اما فعلا شما نیازی نیست درگیر این مسایل شوید.
علاوه بر int ، نوع های دیگری هم می توانیم برای متغیرهای صحیح تعریف کنیم. از جمله انواع متغیرهای صحیح می توان به byte ، long ، uint ، ulong و غیره اشاره کرده. تفاوت آنها در گنجایش آنها برای ذخیره اعداد هست. مثلا نوع byte حداکثر می تواند عددی به بزرگی 255 را در خود ذخیره کند.
من قبلا در مورد همه ی کلمات کلیدی موجود در سی شارپ ، مطالب کامل و جامعی رو در همین بلاگ قرار داده ام. تمام انواع عددی با کلمات کلیدی مربوط به خود تعریف می شوند. برای اطلاعات بیشتر می توانید به صفحه کلمات کلیدی سی شارپ مراجعه کنید.
ان شاء الله در جلسات آینده برنامه های جالبی با استفاده از همین متغیرها خواهیم ساخت.
موفق باشید.