تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت محمد (ص) : طلب علم بر هر انسانی واجب است ،همانا خداوند علم آموزان را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش سی و نهم


بنام خدا

آموزش مقدماتی تا پیشرفته سی شارپ بخش سی و نهم


سلام به همه کاربران وبسایت بزرگ لندلرن

قسمت سی و نهم

امتحان كنيد: استفاده از حلقه هاي تودرتو

۱.       در قــسمت طراحــي فــرم برنامه جاری، كنتــرل Button ديگــري بــه فــرم اضــافه كنيــد، خاصــيت Name آن را برابــر بــا  btnNestedLoop و خاصيت Text آن را برابر با Loop Nested قرار دهيد

۲.       بر روي اين كنترل دو بار كليك كنيد و كد مشخص شده در زير را در متد مربوط به رويداد Click وارد كنيد.

 

 

۳.      برنامه را اجرا كنيد و روي دكمه Loop Nested كليك كنيد. نتيجه اي مشابه شـكل زیر را مـشاهده خواهيـد .كرد.

چگونه كار مي كند؟

 

كد اين برنامه كاملا مشخص است و جاي ابهامي ندارد . حلقه اول (حلقه بيروني ) با استفاده از شمارشگر intLoop1 از عـدد ۱

تا ۲ و حلقه دوم يا حلقه دروني با استفاده از شمارشگر intLoop2 از ۱ تا ۳ حركت مي كند. در حلقه دروني كدي براي نمايش

مقدار متغيير هاي intLoop1 و intLoop2 وجود دارد :

 

در حلقه هاي تو در تو بايد توجه داشته باشيد، حلقه اي كه در درون يك حلقه ديگر شروع مي شود، در همان حلقه نيز تمام مي شود . به عبا رت ديگر كدهاي مربوط به حلقه دروني نمي توانند در خارج از حلقه بيروني قرار بگيرند.

در اينجا اولين آكولادي كه بسته شـده است مربوط به حلقه داخلي است . هنگامي كه برنامه براي اولين بار وارد حلقه intLoop1 مي شود، حلقـه intLoop2 را سه بار اجرا مي كند . سپس يك واحد به شمارنده حلقه intLoop1 اضافه مي كند و بار ديگر سـه بـار دسـتورات داخـل حلقـه intLoop2 را اجرا مي كند . اين تكرار ادامه پيدا مي كند تا دفعات تكرار حلقه اول به پايان برسد . به اين ترتيب برنامه از هر دو حلقه خارج مي شود و به اولين خط بعد از آنها مي رود .

خروج زودهنگام از حلقه :

 بعضي مواقع در برنامه نيازي نيست كه يك حلقه for تا انتها اجرا شود. مثلا در يك ليست بـه دنبـال مـوردي خـاص ميگرديـد و ميخواهيد با پيدا شدن آن مورد از حلقه خارج شويد، زيرا گشتن بقيه عناصر ليست لازم نيست . در امتحان كنيد بعد، برنامه اي كه تمام فولدرهاي درايـو C را نمـايش ميـداد بـه نحـوي تغييـر ميدهيـد كـه بـا رسـيدن بـه فولـدر  C\PROGRAM FILESپيغامي را نشان دهد و از برنامه خارج شود .

امتحان كنيد: خروج زودهنگام از حلقه

۱.      كنترل Button جديدي به فرم اضافه كنيد، خاصيت Name آن را برابـر btnQuittingAForLoop و خاصيت Text آن را برابر Loop For a Quitting قرار دهيد.

۲.      روي اين كنترل دو بار كليك كنيد و كد مشخص شده در زير را در متد مربوط به رويداد Click آن قرار دهيد:

 

 

۳.      برنامه را اجرا كنيد و روي دكمه ي Loop For A Quitting كليك كنيد. نتيجه اي مشابه شـكل زیر را مشاهده خواهيد كرد.

چگونه كار مي كند؟

 

هر بار كه حلقه اجرا مي شود، با استفاده از تابع Compare.String كه نحوه كار آن قبلا توضيح داده شد، بررسي ميكنيـدكه آيا نام فولدر برابر با  C\PROGRAM FILESاست يا نه؟

// Do you have the folder C:\Program Files?

                if (String.Compare(strFolder,“c:\\program files”, true) == 0)

 

در صورتی که نام فولدرC\PROGRAM FILES  بود ابتدا یک پیغام نمایش میدهد.

 

 

بعد از آن با استفاده از دستور break از حلقه خارج مي شويد . در اين حالت هنگامي كه ويژوال #C به اين دستور برسد، به اولين خط بعد از حلقه مي رود و آن را اجرا مي كند . در اين مثال از دستور break براي خروج از حلقه for استفاده كرديم اما از ايـن دستور براي خروج زودهنگام از هر نوع حلقه اي در #C ميتوانيد استفاده كنيد .

  

 

البته اگر نام فولدر برابر با نامي كه به دنبال آن هستيد نباشد، جستجو تا انتهاي ليست ادامه پيدا ميكند. در برنامه ها بـراي جـستجوي يك مورد خاص معمولا از حلقه هاي for استفاده مي كنند. استفاده از دستور break براي خروج از حلقه هنگام پيدا شدن آيتم مورد نظر باعث افزايش سرعت برنامه مي شود . تصور كنيد مي خواهيد ليستي شامل ۱۰۰۰ آيتم را جستجو كنيد و آيتم مو رد نظر شما در مكان دهم قرار دارد . اگر بعد از پيـدا كـردن آن از حلقه خارج نشويد، از كامپيوتر مي خواهيد كه ۹۹۰ آيتم را بي دليل جستجو كند كه باعث مي شود سرعت برنامه به شـدت كـم .شود

 

نكته: به نحوه نوشتن آدرسها در عبارتهاي رشته اي اين برنامه دقت كنيد . كاراكتر \ در تمام آنها به صورت \\ نوشته شده اسـت . همانطور كه در بخش قبلي شرح داده شد، براي قرار دادن كاراكتر \ در رشته بايد از \\ استفاده كنيد. براي مثال اگر در برنامه بـالا به جاي استفاده از رشته ” C\\PROGRAM FILES”  از ” C\PROGRAM FILES”  استفاده كنيد با خطاي “sequence scape Unrecognized “روبرو خواهيد شد، زيرا بعد از كاراكتر \ در يـك رشـته، بايـد يـك كاراكتر كنترلي با معني براي كامپايلر قرار بگيرد و كاراكتر p جز اين كاراكترها نيست .

نكته: به كد زير براي تعريف يك ثابت رشته اي دقت كنيد :

در اين كد بر خلاف قسمتهاي قبلي از دو كاراكتر \ استفاده نكرده ايم . بلكه فقط يك \ به كـار بـرده ايـم و قبـل از رشـته هـم از علامت @ استفاده كرده ايم . در ويژوال #C اگر قبل از شروع يك رشته از علامت @ اسـتفاده شـود، تمـام كاراكترهـاي كنترلـي در رشته به صورت كاراكترهاي عادي در نظر گرفته مي شوند و رشته تا علامت نقل قول بعدي ادامه پيدا مي كند. در اين رشته هم قبل از شروع از علامت @ استفاده كرده ايم. بنابراين تمام كاراكتر ها (حتي \) تا كاراكتر نقل قول پاياني جزئي از رشته به شمار مي روند .

پایان قسمت ۳۹


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ