تبليغاتX
Free Domains Hosting at .co.nr
آموزش برنامه نویسی کامپیوتر و الکترونیک
آموزش برنامه نویسی کامپیوتر و الکترونیک
اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.
خانه آرشیو مطالب تماس با من در صورتی که هر سوال فوری در زمینه کامپیوتر و الکترونیک دارید با شماره 09356614309(اقبال سهرابی) تماس بگیرید
درباره وبلاگ
آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی -
منوي اصلي
صفحه نخست
آرشيو مطالب
پست الکترونیک
موضوعات مطالب
وبسایت کسب در آمد
تجارت الکترونیکی
آموزش
آموزش هك (Learning Hack)
موبایل
----- آموزش زبان #C ----
زبانهای خارجی
الکترونیک
آرشيو مطالب
نويسندگان
اقبال سهرابی
الناز
سامان A
آقا مجید
بازدید کنندگان
کمال بهرامی
دکتر محسن
فرزاد حسینی
مهسا(بیدار)
پيوندهاي روزانه
Username & Password For NOD 32
حق و صبر
فعال کردن ویندوز XP با استفاده از Windows_xp_Genuine_Advantage دانلود آن
کرمانشاه -راهنمای جامع -
شرکت نانو Nano Kurd
---- وبلاگ آموزش ایرانیان -----
حقوق زن
زندگی !
$$$$ تجارت بدون سرمایه $$$$
برترین وبلاگ شعر دنیا
کلاه برداران و معتبر ترین سایت
برترین تجارت جهان
پيوندها
صبا
مهر
عاشقانه
آموزش الکترونیک
وبلاگ آموزش ایرانیان
آموزش آنلاین زبان انگلیسی
آموزش درس مبانی علم رايانه
پلکهای خیس
تقدیم به عاشقان
وبلاگی دیگر از ما
* آموزش برنامه نويسي ايرانيان *
عکسهای عاشقانه،عرفانی ومختلف
بزرگترين فروشگاه فيلم و سريال
یه روزایی ...
تجارت در ایران مارکت سنتر
خرس قهوه ای (مهسا)
قالب وبلاگ
امكانات





Powered by WebGozar

درس چهارم – دستورالعمل‌هاي كنترلي، حلقه‌ها

 

در اين درس نحوه استفاده از دستورالعمل‌هاي كنترل حلقه در زبان C# را فرا خواهيد گرفت.

 

در درس قبل، نحوه ايجاد يك حلقه بسيار ساده را با استفاده از دستور goto را فرا گرفتيد. در همان مطلب نيز اشاره كرديم كه اين روش، روش مناسبي جهت ايجاد حلقه‌ نيست. در اين درس با نحوه صحيح ايجاد حلقه‌ها در زبان C# آشنا خواهيد شد. اولين دستوري كه با آن آشنا مي‌شويد نيز دستور while است.

 

حلقه while

ابتدا به مثال زير توجه نماييد.

using System;

 

class WhileLoop

 {

   public static void Main()

   {

     int myInt = 0;

     while (myInt < 10)

     {

      Console.Write("{0} ", myInt);

      myInt++;

     }

     Console.WriteLine();

   }

 }

مثال 1-4 كه در بالا ملاحظه مي‌كنيد، يك حلقه while ساده را نشان مي‌دهد. اين حلقه با كلمه كليدي while آغاز شده و سپس به دنبال آن يك عبارت منطقي قرار مي‌گيرد و مورد بررسي قرار مي‌گيرد. تمامي دستورالعمل‌هاي كنترلي از يك عبارت منطقي بهره مي‌گيرند و اين بدين معناست كه ابتدا اين عبارت بايد بررسي شود تا مشخص شود مقدار اين عبارت true است يا false. در اين مثال مقدار متغير myInt مورد بررسي قرار مي‌گيرد تا چك شود آيا مقدارش از 10 كوچكتر هست يا خير. چون در ابتداي برنامه به اين متغير مقدار صفر تخصيص داده شده است، عبارت منطقي مقدار true را باز مي‌گرداند و سپس بلوك قرار گرفته بعد از عبارت منطقي مورد اجرا قرار مي‌گيرد.

 

درون بلوك while ابتدا مقدار متغير myInt در كنسول نمايش داده مي‌شود و سپس يك واحد به مقدار اين متغير افزوده مي‌گردد. پس از اتمام بلوك while، عبارت منطقي مجددا كنترل مي‌شود و در صورتيكه اين عبارت مقدار true بازگرداند، حلقه while مجدداً اجرا مي‌شود. زمانيكه عبارت منطقي مقدار false برگرداند، اجرا برنامه به اولين دستور بعد از بلوك while منتقل مي‌شود. در اين مثال اعداد صفر تا 9 بر روي صفحه نمايش داده مي‌شوند و سپس يك خط خالي چاپ شده و اجراي برنامه خاتمه مي‌يابد.

حلقه بعدي كه بسيار شبيه به حلقه while مي‌باشد، حلقه do-while است.

 

حلقه do-while

ابتدا به مثال 2-4 توجه نماييد.

using System;

 

class DoLoop

{

  public static void Main()

   {

    string myChoice;

    do

     {

      // منويي  نمايش داده مي‌شود

      Console.WriteLine("My Address Book\n");

      Console.WriteLine("A - Add New Address");

      Console.WriteLine("D - Delete Address");

      Console.WriteLine("M - Modify Address");

      Console.WriteLine("V - View Addresses");

      Console.WriteLine("Q - Quit\n");

      Console.WriteLine("Choice (A,D,M,V,or Q): ");

      // ورودي كاربر بررسي مي‌شود

      myChoice = Console.ReadLine();

      // تصميمي بر اساس ورودي كاربر گرفته مي‌شود

      switch(myChoice)

       {

         case "A":

         case "a":

         Console.WriteLine("You wish to add an address.");

              break;

         case "D":

         case "d":

         Console.WriteLine("You wish to delete an address.");

              break;

         case "M":

         case "m":

         Console.WriteLine("You wish to modify an address.");

                 break;

         case "V":

         case "v":

         Console.WriteLine("You wish to view the address list.");

                 break;

         case "Q":

         case "q":

         Console.WriteLine("Bye.");

                 break;

         default:

         Console.WriteLine("{0} is not a valid choice", myChoice);

                 break;

       }

     Console.Write("Press Enter key to continue...");

     Console.ReadLine();

     Console.WriteLine();

    } while (myChoice != "Q" && myChoice != "q");

   }

}

مثال 2-4 نحوه استفاده از حلقه do-while را نشان مي‌دهد. ساختار نوشتاري اين دستور بصورت زير است :

do

{ } while ();

 

دستورالعملهاي مورد استفاده در بلوك اين دستور، هر دستورالعمل معتبر زبان C# مي‌تواند باشد. عبارت منطقي نيز همانند نمونه‌هائيست كه تا كنون با آنها آشنا شديم و يكي از دو مقدار true يا false را بر مي‌گرداند.

 

يكي از مصارف عمده حلقه do به جاي حلقه while، مواردي است كه مي‌خواهيم يكسري دستورالعمل خاص، كه آنها را درون بلوك do قرار مي‌دهيم، حداقل يكبار اجرا شوند. در اين مثال ابتدا يك منو براي كاربر نمايش داده مي‌شود و سپس ورودي از وي دريافت مي‌گردد. چون حلقه while عبارت منطقي خود در ابتداي اجراي حلقه بررسي مي‌نمايد، از اينرو تضميني براي اجراي دستورات درون بلوك وجود نخواهد داشت، مگر شما بطور صريح برنامه را طوري طراحي نماييد كه اين عمل اتفاق بيفتد.

 

يك نگاه كلي به مثال 2-4 بيندازيم. در متد Main() متغير myChoice را از نوع رشته‌اي تعريف نموده‌ايم. سپس يكسري دستورات را بر روي كنسول چاپ نموده‌ايم. اين دستورات منوهاي انتخاب براي كاربر هستند. ما بايد ورودي از كاربر دريافت كنيم كه چون اين عمل از طريق Console.ReadLine() صورت گرفته، بايد در متغيري از نوع رشته‌اي قرار گيرد و از اينرو اين ورودي را در myChoice قرار داده‌ايم. ما بايد ورودي را از كاربر دريافت كنيم و بر روي آن پردازش انجام دهيم. يك روش كارآمد براي اين منظور استفاده از دستورالعمل switch است. همانطور كه در دستور switch ملاحظه مي‌كنيد، بري default نيز دستوري در نظر گرفته شده‌ است كه نشان مي‌دهد مقدار ورودي معتبر نيست.

 

حلقه for

به مثال 3-4 توجه كنيد.

using System;

 

class ForLoop

{

  public static void Main()

   {

    for (int i=0; i < 20; i++)

     {

      if (i == 10)

         break;

      if (i % 2 == 0)

         continue;

      Console.Write("{0} ", i);

     }

    Console.WriteLine();

   }

}

مثال 3-4 يك حلقه for را نشان مي‌دهد. استفاده از حلقه for براي زماني مناسب است كه دقيقاً بدانيد كه حلقه چندبار بايد تكرا شود. محتويات درون پرانتزهاي حلقه for از سه قسمت تشكيل شده است :

(; ; )

 

initializer list ليستي از عبارات است كه بوسيله كاما از يكديگر جدا مي‌شوند. اين عبارات تنها يكبار در طول دوره كاري حلقه for پردازش مي‌شوند. همانطور كه در مثال 3-4 نيز ملاحظه مي‌كنيد، اين قسمت معمولا براي تعيين متغيري عددي جهت آغاز عمل شمارش مورد استفاده قرار مي‌گيرد.

 

پس از اينكه عبارتهاي دورن initializer list پردازش شد، حلقه for به سراغ قسمت بعدي، يعني عبارات منطقي(boolean expression) مي‌رود. در اين قسمت تنها يك عبارت منطقي مي‌توان قرار داد ولي هر اندازه كه بخواهيد مي‌توانيد اين عبارت منطقي را پيچيده نماييد، فقط توجه نماييد كه اين عبارت بايد بگونه‌اي شود كه مقدار true يا false برگرداند. از اين عبارت منطقي معمولا جهت كنترل متغير شمارشي استفاده مي‌شود.

 

هنگاميكه عبارت منطقي مقدار true بازگرداند، دستورالعمل‌هاي بلوك for اجرا مي‌شوند. در مثال 3-4 ما از دو دستور if درون حلقه for نيز استفاده كرده‌ايم. اولين دستور if بررسي مي‌كند كه آيا مقدار متغير i برابر با 10 هست يا نه. در اينجا يك نمونه ديگر از استفاده دستور break را ملاحظه مي‌كنيد. عملكرد دستور break در اينجا نيز همانند مورد استفاده آن در دستور switch است. در صورت اجراي دستور break اجراي حلقه for خاتمه يافته و اجراي برنامه به اولين دستور بعد از حلقه for منتقل مي‌شود.

 

دومين دستور if با اسقتاده از عملگر باقيمانده (%) بررسي مي‌كند كه آيا متغير i بر 2 بخش پذير هست يا نه.  در صورتيكه متغير i بر 2 بخش پذير باشد، دستور continue اجرا مي‌شود. پس از اجراي دستور continue از ساير دستورات حلقه for كه بعد از continue قرار گرفته‌اند صرفه‌نظر مي‌شود و اجراي برنامه به اول حلقه for باز مي‌گردد.

 

قسمت سوم در حلقه for، قسمت postloopaction list است. پس از اينكه تمامي دستورات درون حلقه for اجرا شد، اجراي حلقه به اين قسمت باز مي‌گردد. اين قسمت ليستي از عملياتي است كه مي‌خواهيد پس از اجراي دستورات درون بلوك حلقه for انجام شوند. در مثال 3-4 اين عمل، اضافه كردن يك واحد به متغير شمارشي است. پس از افزوده شدن يك واحد به متغير شمارشي، عبارت منطقي مجدداً مورد بررسي قرار مي‌گيرد و در صورتيكه مقدار اين عبارت برابر با true باشد، حلقه for مجدداً اجرا مي‌گردد. حلقه for تا زمانيكه عبارت منطقي برابر با true باشد اجرا مي‌شود.

 

حلقه foreach

به مثال 4-4 توجه كنيد.

using System;

 

class ForEachLoop

{

  public static void Main()

   {

     string[] names = {"Meysam", "Ghazvini", "C#", "Persian"};

     foreach (string person in names)

     {

      Console.WriteLine("{0} ", person);

     }

   }

}

حلقه foreach براي پيمايش مجموعه‌ها بسيار مناسب است. يك نمونه از مجموعه‌ها در C#، آرايه‌ها هستند كه در مثال 4-4 نيز مورد استفاده قرار گرفته است. اولين كاري كه در متد Main() صورت گرفته،‌ اعلان آرايه names از نوع رشته‌اي و مقدار دهي آن است.

 

درون پرانتزهاي foreach عبارتي متشكل از دو المان قرار دارد كه اين المان‌ها بوسيله كلمه كليدي in از يكديگر جدا شده‌اند. المان سمت راست، مجموعه‌ايست كه مي‌خواهيد اعضاي آنرا مورد پيمايش قرار دهيد. المان سمت چپ، متغيري از نوع مجموعه مورد نظر است كه مقادير پيمايش شده را بر مي‌گرداند.

 

در هربار پيمايش،‌ عنصري جديدي از مجموعه درخواست مي‌شود. اين درخواستها از طريق متغير فقط خواندني تعريف شده درون پرانتزهاي foreach بازگردانده مي‌شوند. تا زمانيكه عنصري در مجموعه وجود داشته باشد كه مورد پيمايش قرار نگرفته است، حلقه foreach به كار خود ادامه خواهد داد زيرا عبارت منطقي حلقه foreach مقدار true را باز مي‌گرداند. به محض اينكه تمامي عناصر مجموعه پيمايش شد، عبارت منطقي برابر با false شده و اجراي حلقه foreach خاتمه مي‌يابد. در اين حالت اجراي برنامه به اولين دستور بعد از حلقه foreach منتقل مي‌گردد.

 

در مثال 4-4، متغيري از نوع رشته‌ با نام person براي نگهداري عناصري كه از آرايه names خوانده مي‌شود، تعريف كرده‌ايم. تا زمانيكه اسمي در آرايه names وجود داشته باشد، در متغير person قرار مي‌گيرد و درون حلقه foreach بوسيله دستور Console.WriteLine() در خروجي نمايش داده مي‌شود.

 

نكته : يكي از مهمترين ويژگيهاي حلقه foreach در آنست كه فقط مي‌تواند عناصر يك مجموعه را بخواند و نمي‌تواند تغييري در آنها ايجاد نمايد. مزيت ديگر آن، پيمايش تمامي عناصر مجموعه بدون اطلاع از تعداد عناصر موجود در آن است.

 

خلاصه

در اين درس با نحوه كار با دستورالعمل‌‌هاي for، while، do-while و foteach آشنا شديد. حلقه while تا زمانيكه شرطش صحيح باشد انجام مي‌شود بدين معني كه تا زمانيكه عبارت منطقي آن داراي مقدار true باشد، دستورات درون بلوك آن اجرا مي‌شوند. حلقه do، دستورات بلوك خود را حداقل يكبار اجرا مي‌كند و سپس شرط مورد نظر را بررسي مي‌نمايد و در صورتيكه عبارت منطقي آن مقدار true بازگرداند، دستورات بلوك خود را تكرار مي‌نمايد. حلقه for دستورات بلوك خود را به تعداد دفعات مشخص اجرا مي‌نمايد و حلقه foreach عناصر يك مجموعه را مورد پيمايش قرار مي‌دهد. در نهايت نيز اشاره مي‌شود كه روند اجراي حلقه‌ها با استفاده از دستورات break و continue تغيير مي‌نمايد.

 


نوشته شده در یکشنبه 18 فروردین1381 توسط اقبال سهرابی | لينك ثابت |
عناوين آخرين مطالب ارسالي
» درسهای #c
» بهترین وبسایت کسب در آمد اینترنتی در ایران
» آموزش C#
» آموزش هك (Learning Hack) بهترین سی دی آ موزشی - پرداخت هزینه درب منزل
» پشتیبان گیری از وبلاگ بلاگفا به روشی بسیار سریع تر از خود بلاگفا و مطمئن تر
» مواردی که تا حالا در موبایل نشنیده اید
» پذیرش نویسنده برای وبلاگ
» نرم افزار ارسال SMS گروهی 8 تومانی !
» تکنیکهای تست زنی در کنکور
» آموزش پيشرفته زبان انگليسي
» آموزش جامع تعميرات موبايل پیشرفته
» بهترین وبسایت خرید اینترنتی
» الکترونیک بخش اول
» ره مه زان گیان ها ته وه
» بهترین ویسایت کسب در آمد در ایران
» حذف اطلاعات و فایلها برای همیشه ....
» خدایا کفر نمی گویم
» زبان نگاه
» مضرات استفاده طولانی از موبایل
» مفهوم شبکه سلولی
» ما در کجای این هستی قرار داریم ...
» انواع کدهای موبال
» ترفندهای موبایل
» در مورد شبکه های موبایل
» شعر جدید زندگی انسانها .... Humans Life
» طراحی صفحات وب (ASP.NET)+دانلود کتاب ای اس پی دات نت بطور کامل
» سهام رایگان جهانی
» سخنان عجیب اینشتین
» چگونه Eset smart security را کراک و به روز نماییم ؟
» چگونه Eset smart security را کراک و به روز نماییم ؟

700dolar

اقبال سهرابی

700dolar

http://700dolar.blogfa.com

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش برنامه نویسی کامپیوتر و الکترونیک - درس چهارم – دستورالعمل‌هاي كنترلي، حلقه‌ها

آموزش برنامه نویسی کامپیوتر و الکترونیک

آموزش C# ، آموزش برنامه نویسی ، آموزش کامپیوتر ، آموزش الکترونیک ، و خرید برخی محصولات بسیار مهم و کاربردی .
راهنمایی جهت ایجاد وبسایت و معرفی بهترین سرویس دهنگان اینترنتی .
و همچنین معرفی بهترین سایتهای تجارت الکترونیکی در ایران.
با تشکر
- اقبال سهرابی - اقبال سهرابی(09356614309) پاسخگوی مشکلات شما در زمینه الکترونیک,کامپیوتر و اینترنت می باشد.

آموزش برنامه نویسی کامپیوتر و الکترونیک

قالب بلاگفا