حلقهٔ while
int k = 1; پیش از هر حلقه مقدار 1 را نگه میدارد. بعد while (k <= 3) تا وقتی آن آزمون true است ادامه میدهد. داخل آکولاد، Console.WriteLine(k) عدد جاری را مینویسد، و k = k + 1 یکی بیشتر زیر k نگه میدارد. صفحه سه خط نشان میدهد: 1، بعد 2، بعد 3. نام کلاس عمومی را Pine نگه دارید.
شروع بیرون، آزمون داخل while، گام داخل
فایل Pine را باز کنید. نام کلاس Pine میماند. این صفحه نوع را عوض نام نمیکند. اگر هنوز حلقهٔ for آنجاست، پاکش کنید، از جمله for (int n = 1; n <= 3; n = n + 1) و هر شروع-آزمون-گامی که در یک سرصفحه بستهبندی شده. اگر خط int choice هنوز آنجاست، پاکش کنید. هر خط ReadLine را هم پاک کنید. فایلی که نگه میدارید منتظر تایپ نیست، سرصفحهٔ for با سه کار داخل پرانتز ندارد، و switch هم ندارد. صفحه فقط با خط نوشتنی داخل آکولاد while نوشته میشود.
درون Main، اول شمارنده را نگه دارید: int k = 1;. آن خط داخل while نیست. فقط k را از 1 شروع میکند. بعد حلقه:
while (k <= 3) {
Console.WriteLine(k);
k = k + 1;
}
کلمهٔ while با حرف کوچک است. داخل پرانتز فقط آزمون نشسته: k <= 3. داخل آن پرانتز شروع و گام نیست — برخلاف خط for که قبلاً دیدید. آکولاد هم خط نوشتن و هم گام را نگه میدارد. Console.WriteLine(k); عدد جاری را بدون گیومه دور k مینویسد. بعد k = k + 1; یکی بیشتر زیر k نگه میدارد تا آزمون بعدی بالاخره بتواند false شود. فایل را ذخیره کنید.
فایلی که نگه میدارید
این شکل آموزشی را نگه دارید. یک خط نگهداری بالای حلقه، int k = 1;. یک while با پرانتز فقط دور آزمون. یک خط نوشتن داخل آکولاد. یک گام داخل آکولاد، k = k + 1;. سرصفحهٔ for نیست، شمارندهٔ n از صفحهٔ قبل نیست، و گیومه دور k هم نیست.
using System;
public class Pine
{
public static void Main()
{
int k = 1;
while (k <= 3)
{
Console.WriteLine(k);
k = k + 1;
}
}
}
از بالا بخوانید. using System; نامهای کوتاه را آماده میکند. public class Pine نوع را نام میگذارد. public static void Main() جایی است که زمان اجرا شروع میکند. int k = 1; مقدار 1 را نگه میدارد. while (k <= 3) آزمون را میپرسد. Console.WriteLine(k); مقدار جاری k را مینویسد. k = k + 1; شمارنده را جلو میبرد. روی صفحه سه خط: 1، بعد 2، بعد 3. در فایلی که نگه میدارید خط for نیست.
با dotnet run اجرا کنید. برنامه سه خط مینویسد و تمام میشود. منتظر نمیماند که شما چیزی تایپ کنید. شمارنده و while از قبل داخل فایل بودند. اگر dotnet run منتظر ماند، هنوز ReadLine داخل فایل است. آن خط را پاک کنید و int k = 1; و همان while بالا را نگه دارید. صفحه 1، بعد 2، بعد 3 را نشان میدهد. اگر صفحه هرگز نایستد و مدام 1 بنویسد، گام از داخل آکولاد کم است. k = k + 1; را برگردانید. اگر صفحه اجرای باقیماندهٔ سبک for را نشان دهد، سرصفحهٔ for را پاک کنید. اگر صفحه روی هر خط حرف k را نشان دهد، خط نوشتن گیومه دارد: Console.WriteLine("k");. برای صفحهای که خط اشتباه نشان میدهد SDK داتنت را دوباره نصب نکنید.
یک اجرای کامل را به ترتیب راه بروید. k پیش از while از 1 شروع میشود. آزمون k <= 3 مقدار true دارد، پس بدنه اجرا میشود: خط نوشتن 1 مینویسد، بعد گام 2 را نگه میدارد. آزمون هنوز true است: 2 مینویسد، 3 را نگه میدارد. آزمون هنوز true است: 3 مینویسد، 4 را نگه میدارد. حالا k <= 3 مقدار false دارد، پس حلقه تمام میشود. شروع یکبار بالای حلقه اجرا شد. آزمون پیش از هر گذر اجرا شد. گام داخل آکولاد بعد از هر نوشتن اجرا شد. آن سه کار همان ایدههای forاند، اما در یک خط سرصفحه بستهبندی نشدهاند. اگر k = k + 1; را حذف کنید و k برای همیشه روی 1 بماند، آزمون true میماند و همان خط میتواند بدون توقف نوشته شود — همان حالت بیپایان دلیل آن است که گام در این صفحه داخل بدنه باشد.
آزمون را وسیعتر کنید
فقط آزمون را عوض کنید تا حلقه یک گام دورتر برود: while (k <= 4). شروع و گام همان بمانند. حالا صفحه باید چهار خط نشان دهد: 1، 2، 3، و 4.
using System;
public class Pine
{
public static void Main()
{
int k = 1;
while (k <= 4)
{
Console.WriteLine(k);
k = k + 1;
}
}
}
این فایل دوم است. فایلی که نگه میدارید نیست. dotnet run را اجرا کنید. صفحه چهار خط نشان میدهد. خط نوشتن یا گام را بازنویسی نکردید — فقط آزمون داخل while (…) عوض شد. بعد از دیدن چهار خط، فایل نگهداشته را برگردانید: k <= 3 و همان بدنه. هر دو نسخه C# معتبرند. همان شکل while را با نقطهٔ توقف متفاوت آموزش میدهند.
اجرای چهارخطی را یکبار دیگر بخوانید. k از 1 شروع میشود. هر آزمون true مقدار جاری k را مینویسد و بعد 1 اضافه میکند. وقتی k به 5 برسد، آزمون شکست میخورد و حلقه میایستد. رقم 5 در این دمو روی صفحه ظاهر نمیشود، چون بدنه فقط تا وقتی آزمون هنوز true است اجرا میشود.
📊 k and the first demo screen
| k before WriteLine | Screen line |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
جدول را بعد از دموی اول برای چک به کار ببرید، نه بهجای اجرا. پیش از هر خط نوشتن در آن دمو، k عددی را نگه میدارد که روی آن خط ظاهر میشود. بعد از نوشتن سوم، گام 4 را نگه میدارد و آزمون شکست میخورد. اگر روی نسخهای بدون گام صفحه هرگز نایستد، k = k + 1; را داخل آکولاد برگردانید — SDK داتنت را دوباره نصب نکنید.
قاعدههایی که while را روشن نگه میدارند
پرانتز دور آزمون لازم است. نوشتن while k <= 3 { … } بدون پرانتز باعث میشود build خطا بنویسد. بدنهٔ این صفحه همیشه داخل آکولاد است، چون هر گذر دو خط دارد: خط نوشتن و گام. اگر گام را بعد از آکولاد بسته بگذارید، یکبار بعد از پایان حلقه اجرا میشود — و داخل حلقه k هرگز عوض نمیشود، پس حلقه میتواند برای همیشه اجرا شود. در هر دو دمو گام را داخل آکولاد نگه دارید.
while نه for است و نه switch. for شروع، آزمون، و گام را در یک خط سرصفحه میبندد. while فقط آزمون را در سرصفحه نگه میدارد و از شما میخواهد شروع و گام را خودتان بگذارید. switch یکبار میان برچسبهای case انتخاب میکند. یک حلقهٔ for یا یک switch را در همان Main نگذارید و تعجب نکنید چرا صفحه باقیماندهٔ سرصفحهٔ سبک for یا کلمهٔ mid را نشان میدهد. Main این جلسه باید فقط همان int و همان while را نگه دارد.
اشتباه رایج نوشتن خود نحو است: Console.WriteLine("while");. آن خط نویسههای while را مینویسد. تکرار نمیکند. اشتباه دیگر گذاشتن گیومه دور k است: Console.WriteLine("k"); روی هر گذر حرف k را مینویسد. وقتی میخواهید شمارنده روی صفحه باشد، Console.WriteLine(k) را بدون گیومه نگه دارید. اگر وقتی برای اولینبار به while میرسید آزمون از قبل false باشد — مثلاً k از 5 شروع شود و آزمون بگوید k <= 3 — بدنه هرگز اجرا نمیشود و صفحه خالی میماند. آن هم هنوز یک while معتبر است؛ دموهای این درس آزمونی نگه میدارند که دستکم یکبار true باشد تا خطهای نوشته را ببینید.
حالا میتوانید شمارنده را بالای while شروع کنید، آزمون را داخل while (…) بگذارید، و هم خط نوشتن و هم گام را داخل آکولاد نگه دارید. عوض کردن آزمون تعداد خطها را عوض میکند. صفحهٔ بعد break و continue است، جایی که زود از حلقه خارج میشوید یا یک گذر را رد میکنید بدون آن که کل حلقه تمام شود.
صفحه همان شمارندهٔ در حال عوضشدن است
فایلی که نگه میدارید 1، بعد 2، بعد 3 مینویسد. نام k روی خط نوشتن است، و حرف k روی صفحه نیست. شروع بالای while نشسته، و روی صفحه نیست. گیومه دور k یا دور while حرف مینویسد، نه مسیر شمارنده را.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود