در حال بارگذاری...

foreach

string[] plants = { "leaf", "mint" }; دو واژه نگه می‌دارد. سپس foreach (string plant in plants) هر واژه را به نام plant می‌دهد و Console.WriteLine(plant) آن را می‌نویسد. صفحه دو خط نشان می‌دهد: leaf، بعد mint. در این صفحه شمارندهٔ ایندکس نمی‌نویسید. نام کلاس عمومی را Pine نگه دارید.

یک نام برای هر مقدار در آرایه

فایل Pine را باز کنید. نام کلاس Pine می‌ماند. این صفحه نوع را عوض نام نمی‌کند. اگر هنوز for با break یا continue آنجاست، پاکش کنید. اگر هنوز for (int i = 1; i <= 5; i = i + 1) شمرده‌شده مانده، پاکش کنید. هر خط ReadLine را هم پاک کنید. فایلی که نگه می‌دارید منتظر تایپ نیست، break زود ندارد، و شمارندهٔ ایندکس ندارد. صفحه فقط با خط نوشتن داخل آکولادهای foreach نوشته می‌شود.

درون Main، اول آرایه را نگه دارید: string[] plants = { "leaf", "mint" };. آن خط صفحه را نمی‌نویسد. فقط دو واژه را زیر نام plants نگه می‌دارد. سپس حلقه:
foreach (string plant in plants) {
Console.WriteLine(plant);
}
کلمهٔ foreach با حروف کوچک و یک‌تکه نوشته می‌شود. داخل پرانتز نوع عنصر string، نام plant برای یک عنصر، کلمهٔ in، و بعد نام آرایهٔ plants می‌نشینند. آن in مسیر نیست و برچسب case هم نیست. یعنی «هر مقدار از plants داخل plant می‌رود.» آکولادها بدنه را نگه می‌دارند. Console.WriteLine(plant); واژهٔ جاری را بدون گیومه دور plant می‌نویسد. فایل را ذخیره کنید.

فایلی که نگه می‌دارید

این شکل آموزشی را نگه دارید. یک string[] به‌نام plants که اول leaf بعد mint دارد. یک foreach با string plant in plants. یک خط نوشتن که نام لخت plant را می‌نویسد. ایندکس i نیست، break نیست، و گیومه دور plant نیست.

string array walk

csharp
using System;

public class Pine
{
    public static void Main()
    {
        string[] plants = { "leaf", "mint" };
        foreach (string plant in plants)
        {
            Console.WriteLine(plant);
        }
    }
}

از بالا بخوانید. using System; نام‌های کوتاه را آماده می‌کند. public class Pine نوع را نام می‌گذارد. public static void Main() جایی است که زمان اجرا شروع می‌کند. string[] plants = { "leaf", "mint" }; دو واژه نگه می‌دارد. foreach (string plant in plants) آن‌ها را راه می‌رود. Console.WriteLine(plant); هر واژه را می‌نویسد. روی صفحه دو خط: leaf، بعد mint.

با dotnet run اجرا کنید. برنامه دو خط می‌نویسد و تمام می‌شود. منتظر نمی‌ماند که شما چیزی تایپ کنید. اگر dotnet run منتظر ماند، هنوز ReadLine داخل فایل است. آن خط را پاک کنید و همان آرایه به‌همراه foreach بالا را نگه دارید. صفحه leaf، بعد mint را نشان می‌دهد. اگر صفحه فقط leaf نشان دهد، شاید هنوز روی صفحهٔ آرایه‌ها هستید که یک‌بار plants[0] می‌نویسد. آن را با foreach عوض کنید. اگر صفحه در هر خط حرف‌های plant را نشان دهد، خط نوشتن گیومه دارد: Console.WriteLine("plant");. اگر صفحه حرف‌های foreach را نشان دهد، خط نوشتن دور همان کلمه گیومه دارد. برای صفحه‌ای که خط اشتباه نشان می‌دهد SDK دات‌نت را دوباره نصب نکنید.

یک اجرای کامل را به ترتیب راه بروید. plants اول leaf بعد mint دارد. گذر اول plant را برابر leaf می‌گذارد و خط نوشتن leaf می‌نویسد. گذر دوم plant را برابر mint می‌گذارد و mint می‌نویسد. دیگر مقداری نیست، پس حلقه تمام می‌شود. در این صفحه int i = 0 یا i < plants.Length ننوشتید. سرصفحهٔ foreach از C# می‌خواهد هر مقدار ذخیره‌شده را یک‌بار ببیند. نام plant یک‌بار در سرصفحه به‌صورت string plant اعلام می‌شود.

همان شکل برای آرایهٔ int

آرایهٔ ذخیره‌شده و نوع عنصر را عوض کنید تا هر مقدار یک عدد صحیح باشد. از int[] slots = { 2, 4, 6 }; و foreach (int n in slots) با Console.WriteLine(n); در بدنه استفاده کنید. حالا صفحه باید سه خط نشان دهد: 2، بعد 4، بعد 6. کلمهٔ in هنوز بین نام عنصر و نام آرایه می‌نشیند. بدنه هنوز نامی را می‌نویسد که یک عنصر را نگه می‌دارد.

int array walk

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int[] slots = { 2, 4, 6 };
        foreach (int n in slots)
        {
            Console.WriteLine(n);
        }
    }
}

این فایل دوم است. فایلی که نگه می‌دارید نیست. با dotnet run اجرا کنید. صفحه سه خط نشان می‌دهد. آرایهٔ string را با آرایهٔ int عوض کردید و نوع نام عنصر را با int جور کردید. بعد از دیدن 2، 4، و 6، فایل نگه‌داشتنی را برگردانید: plants با foreach (string plant in plants). هر دو نسخه C# معتبرند. همان شکل foreach را با نوع عنصر متفاوت آموزش می‌دهند.

اجرای int را یک‌بار دیگر بخوانید. slots اول 2، بعد 4، بعد 6 دارد. گذر اول n را برابر 2 می‌گذارد و می‌نویسد. گذر دوم n را برابر 4 می‌گذارد و می‌نویسد. گذر سوم n را برابر 6 می‌گذارد و می‌نویسد. سپس حلقه تمام می‌شود. دور عددها در آکولادهای آرایه گیومه نیست. Console.WriteLine(n) بدون گیومه دور n همان عددهای ذخیره‌شده را روی صفحه می‌نویسد.

قاعده‌هایی که foreach را روشن نگه می‌دارند

پرانتز باید به‌ترتیب نوع، نام، in، و نام آرایه را نگه دارد. نوشتن foreach (string plant plants) بدون in باعث می‌شود ساخت خطا بنویسد. نوع عنصر باید با آرایه جور باشد: string با آرایهٔ string، int با آرایهٔ int. گذاشتن string plant کنار آرایهٔ int[] شکل این درس نیست. وقتی بدنه یک خط یا بیشتر دارد، آکولادها هنوز بدنه را نگه می‌دارند.

foreach همان for شمرده‌شدهٔ صفحهٔ قبلی نیست، و break صفحهٔ پیش هم نیست. for شمرده‌شده شروع و آزمون و گام را با شمارنده می‌نوشت. foreach مقدارهایی را راه می‌رود که از قبل در آرایه ذخیره شده‌اند. break حلقه را زود تمام می‌کند؛ دموی اول این صفحه همهٔ مقدارها را می‌نویسد. دموی break یا یک while ساده را در همان Main نگذارید و تعجب نکنید چرا صفحه 1 و 2 نشان می‌دهد به‌جای leaf و mint. Main این جلسه باید فقط آرایه و foreach را نگه دارد.

اشتباه رایج نوشتن خود نحو است: Console.WriteLine("foreach");. آن خط حرف‌های foreach را می‌نویسد. آرایه را راه نمی‌رود. اشتباه دیگر Console.WriteLine("plant"); با گیومه است که در هر گذر واژهٔ plant را می‌نویسد به‌جای leaf و mint. وقتی می‌خواهید مقدار عنصر روی صفحه باشد، Console.WriteLine(plant) را بدون گیومه نگه دارید.

اگر آرایه عنصری نداشته باشد — مثلاً string[] plants = { }; — بدنه هرگز اجرا نمی‌شود و صفحه خالی می‌ماند. آن هم هنوز foreach معتبر است؛ دموهای این درس حداقل دو مقدار نگه می‌دارند تا خط‌های نوشته‌شده را ببینید. وقتی بعداً به شمارهٔ ایندکس روی صفحه نیاز دارید، for شمرده‌شده برمی‌گردد؛ foreach برای دیدن مقدارها بدون مدیریت دستی آن ایندکس است. عوض کردن مقدار داخل حلقه با plant = "stem"; در این شکل مبتدی جای آرایه را بازنویسی نمی‌کند — plant را مقداری بدانید که برای نوشتن می‌خوانید، نه ابزاری برای ویرایش plants.

حالا می‌توانید آرایه نگه دارید، foreach (Type name in arrayName) بنویسید، و هر مقدار را یک‌بار بنویسید. جور بودن نوع عنصر با آرایه حلقه را قابل ساخت نگه می‌دارد. صفحهٔ بعدی methods است؛ آنجا خط‌ها را زیر نامی جمع می‌کنید که از Main صدا زده می‌شود.

صفحه همان هر مقدار آرایه است

فایلی که نگه می‌دارید leaf، بعد mint می‌نویسد. نام plant در خط نوشتن است، و حرف‌های plant به‌عنوان برچسب روی صفحه نیستند. کلمهٔ in داخل پرانتز است، و in روی صفحه نیست. گیومه دور plant یا دور foreach حرف می‌نویسد، نه راه رفتن آرایه.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
6
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود