کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

حلقه for در سی شارپ (C# loop)

یکی دیگر از روش های بسیار پرکاربرد ساخت حلقه در زبان سی شارپ استفاده از دستور for است. شاید سادگی و خوانایی بیشتر این دستور نسبت به دیگر روش های ساخت حلقه در سی شارپ موجب محبوبیت بیشتری برای آن شده باشد. در این درس می خواهیم به بررسی حلقه for در سی شارپ بپردازیم.

یک از رایج ترین و پرکاربرد ترین دستورات برای ایجاد ساختارها و حلقه تکرار شرطی در زبان سی شارپ دستور for() می باشد. این دستور داخل پرانتز خود می تواند شامل سه بخش اصلی باشد که هیچ کدام اجباری نیستند ولی به کمک آنها می توان ساده تر از دیگر حالات گفته شده حلقه های تکرار در سی شارپ ایجاد نمود. توجه کنید که دستور for در سی شارپ همانند دستور while برای هر بار تکرار در آغاز اجرای بدنه حلقه شرط لحاظ شده را بررسی می کند و چنانچه این شرط نتیجه true برگرداند بدنه حلقه اجرا خواهد شد. گفتیم که در ساختار معمولَش، حلقه ی for به سه بخش تقسیم می شود. اولین بخش، نقطه ی آغاز شمارش را مشخص می کند. بخش دوم حد شمارش را تعیین می کند. آخرین بخش تکرار یا تناوب شمارش را تعیین می کند. ترکیب نحوی حلقه ی for به این صورت می باشد.

                
for(initialize; Condition; increment factor)
{
Statement;
}

عبارت initial متغیری است که به عنوان مقدار اولیه (آغازین) تخصیص داده می شود که می تواند Count = 0; باشد (initialize مقدار آغازین یا نقطه ی شروع حلقه است که می تواند 0 باشد) عبارت condition انتهای فرایند شمارش را تعیین می کند (کجا شمارش به پایان برسد). مثال Count < 24;. مثال بیان شده نشان می دهد که شمارش تا متغیر Count که کوچکتر از 24 باشد ادامه می یابد (condition نقطه ی پایان حلقه است که مشخص می کند مقدار count تا عددی کوچکتر از 24 ادامه پیدا کند). هنگامی که شمارش به 24 می رسد، به این خاطر که در مثال مورد نظر خود عدد 24 حساب نمی شود، شمارش خاتمه می یابد. برای تعیین حد شمارش، از عملگرهای مقایسه ی >= یا <= استفاده می شود. عبارت increment factor برای compiler مشخص می کند چه مقدار (مقدار : عددی که در هر بار تکرار حلقه for به نقطه ابتدایی اضافه و یا کم شود) پیش از ادامه ی حلقه اضافه یا کسر کند. این عبارت می تواند عملیات افزایشی مثل ++Count باشد.

مثال:

                
using System;‎
public class Exercise
‎{‎
‎    public static int Main()‎
‎    {‎
‎        for (var stories = 0; stories <= 4; stories++)‎
‎            Console.WriteLine("Number {0}"‎,‎ stories);‎
‎        return 0;‎
‎    }‎
‎}

نتیجه ی زیر به دست می آید.

Number 1
Number 2
Number 3
Number 4
Press any key to continue...

تو در تو کردن دستور شرطی

ممکن است در مواردی کد داخل بدنه یک حلقه خود نیز دوباره شامل یک حلقه تکرار باشد. در این حالت یک حلقه تو در تو ایجاد کرده ایم. برنامه ی زیر را در نظر بگیرید.

                
using System;‎
public class Exercise
‎{
‎    public static int Main()
‎    {
‎        var typeOfHome = 0;
‎        do
‎        {
‎            Console.WriteLine("What Type of House Would you Like to ‎Purchase?");
‎            Console.WriteLine("1 - Single Family");
‎            Console.WriteLine("2 - Town House");
‎            Console.WriteLine("3 - Condominium");
‎            Console.Write("Your Choice? ");
‎            typeOfHome = int.Parse(Console.ReadLine());
‎        } while ((typeOfHome < 1) || (typeOfHome > 3));
‎        if (typeOfHome == 1)
‎            Console.WriteLine("\nType of Home: Single Family");
‎        else if (typeOfHome == 2)
‎            Console.WriteLine("\nType of Home: Town House");
‎        else if (typeOfHome == 3)
‎            Console.WriteLine("\nType of Home: Condominium");
return 0;
‎    }
‎}

از برنامه ی بالا به منظور درخواست یکی از اعداد 1، 2 یا 3 از کاربر استفاده می شود. هر عدد دیگری کمتر از 1 و بیشتر از 3 پذیرفته نیست. نتیجه از اجرای برنامه

What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 8‎
What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 6‎
What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 3‎
Type of Home: Condominium
Press any key to continue...

اگر کاربر مقداری نامعتبر وارد کند، سوال بار دیگر تکرار می شود. برای حل این مسئله می توان دستور شرطی را داخل دستور شرطی دیگر گنجاند (نوشت) که به آن nesting یا تودرتو کردن می گویند. نحوه ی تودرتو کردن دستور شرطی، زیر با مثال توضیح داده شده است.

                
using System;‎
public class Exercise
‎{‎
‎    public static int Main()‎
‎    {‎
‎        var typeOfHome = 0;‎
‎        
do
‎        {‎
‎            Console.WriteLine("What Type of House Would you Like to ‎Purchase?");‎
‎            Console.WriteLine("1 - Single Family");‎
‎            Console.WriteLine("2 - Townhouse");‎
‎            Console.WriteLine("3 - Condominium");‎
‎            Console.Write("Your Choice? ");‎
‎            typeOfHome = int.Parse(Console.ReadLine());‎
‎            if ((typeOfHome < 1) || (typeOfHome > 3))‎
‎                Console.WriteLine("Invalid Choice: Please try again");‎
‎        } while ((typeOfHome < 1) || (typeOfHome > 3));‎
‎        if (typeOfHome == 1)‎
‎            Console.WriteLine("\nType of Home: Single Family");‎
‎        else if (typeOfHome == 2)‎
‎            Console.WriteLine("\nType of Home: Townhouse");‎
‎        else if (typeOfHome == 3)‎
‎            Console.WriteLine("\nType of Home: Condominium");‎
return 0;‎
‎    }‎
‎}

نتیجه اجرا

What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 0‎
Invalid Choice: Please try again
What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 6‎
Invalid Choice: Please try againe
What Type of House Would you Like to Purchase?‎
‎1 - Single Family
‎2 - Town House
‎3 - Condominium
Your Choice? 2‎
Type of Home: Town House
Press any key to continue...
1404/01/20 22874 4565
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...