حلقهٔ for در Java
یک حلقهٔ کوچک اجرا کنید که n را از ۱ شروع کند، تا وقتی n کوچکتر یا مساوی ۳ است ادامه دهد، و بعد از هر دور ۱ به n اضافه کند. داخل آکولاد n را چاپ کنید. صفحه باید سه خط نشان دهد: ۱، بعد ۲، بعد ۳. همین چاپِ تکراری کار این صفحه است.
سه بخش روی خط for مینشینند
یک برنامهٔ کوچک با نام Beat.java بسازید. public class روی خط اول باید با نام فایل یکی باشد: public class Beat. نام کلاس قدیمی Dial یا Gate را در این فایل نگه ندارید؛ کامپایلر انتظار دارد نام کلاس و نام فایل جور باشند.
داخل main، قبل از هر switch یا if باقیمانده، حلقه را بنویسید:
for (int n = 1; n <= 3; n = n + 1) {
System.out.println(n);
}
کلمهٔ for با حرف کوچک است. داخل پرانتز سه کار با نقطهویرگول جدا میشوند. اول: int n = 1; — یک نام عدد صحیح n بسازید و از ۱ شروع کنید. دوم: n <= 3 — تا وقتی این آزمون true است ادامه دهید. سوم: n = n + 1 — بعد از هر گذر از آکولاد، یکی به n اضافه کنید. آکولاد بدنه را نگه میدارد. System.out.println(n); مقدار فعلی n را مینویسد و خط را تمام میکند. دور n روی آن خط نوشتن گیومه نیست، پس عدد دیده میشود نه حرف n. قبل از کامپایل فایل را ذخیره کنید.
برنامهای که ۱ بعد ۲ بعد ۳ چاپ میکند
این همان نسخهای است که اول کامپایل میکنید.
public class Beat {
public static void main(String[] args) {
for (int n = 1; n <= 3; n = n + 1) {
System.out.println(n);
}
}
}
در پوشهای که Beat.java آنجاست بنویسید javac Beat.java. وقتی پرانتز و آکولاد و نقطهویرگولها جور باشند، javac خودش خطی نمینویسد. بعد بنویسید java Beat — نه java Beat.java. پسوند .java را از فرمان دوم بردارید. همین دو فرمان در Windows و macOS یکی است؛ این صفحه املای پوستهٔ جدا برای هیچکدام نمیخواهد. برنامه باید سه خط چاپ کند و تمام شود: خط اول ۱، خط دوم ۲، خط سوم ۳. منتظر تایپ شما نمیماند. اگر ترمینال منتظر ماند، هنوز nextLine از تمرین قدیمی داخل فایل است. آن را پاک کنید و حلقهٔ for بالا را نگه دارید. برای خط اشتباه روی صفحه لازم نیست JDK را دوباره نصب کنید.
یک اجرای کامل را به ترتیب بخوانید. n از ۱ شروع میشود. آزمون n <= 3 برابر true است، پس بدنه اجرا میشود و println(n) عدد ۱ را مینویسد. بعد گام n = n + 1 مقدار ۲ را نگه میدارد. آزمون هنوز true است، پس بدنه ۲ را مینویسد. گام ۳ را نگه میدارد. آزمون هنوز true است، پس بدنه ۳ را مینویسد. گام ۴ را نگه میدارد. حالا n <= 3 برابر false است و حلقه تمام میشود. چیز دیگری چاپ نمیشود. سه println جدا با دست نمینویسید؛ همان بدنه سه بار با n در حال تغییر اجرا میشود. شروع یکبار در آغاز اجرا میشود. آزمون قبل از هر دور. گام بعد از هر دور. آن سه کار داخل پرانتز میمانند؛ کار نوشتن داخل آکولاد.
حد بالای آزمون را بالاتر ببرید
فقط آزمون را عوض کنید تا حلقه دورتر برود:
for (int n = 1; n <= 5; n = n + 1) {
System.out.println(n);
}
شروع و گام را دست نزنید. حالا صفحه باید پنج خط نشان دهد: ۱، ۲، ۳، ۴ و ۵.
public class Beat {
public static void main(String[] args) {
for (int n = 1; n <= 5; n = n + 1) {
System.out.println(n);
}
}
}
دوباره کامپایل و اجرا کنید: javac Beat.java و بعد java Beat. باید پنج خط ببینید. println را بازنویسی نکردید — فقط آزمون داخل پرانتز for عوض شد. وقتی پنج خط را دیدید، اگر میخواهید دموی اول برگردد، n <= 3 را برگردانید. هر دو نسخه Java درستاند. همان شکل for را با نقطهٔ توقف متفاوت نشان میدهند.
اجرای پنجخطی را یکبار دیگر بخوانید. n از ۱ شروع میشود. هر آزمون true مقدار فعلی n را چاپ میکند و بعد ۱ اضافه میکند. وقتی n برابر ۶ شد، آزمون برقرار نیست و حلقه میایستد. رقم ۶ در این دمو روی صفحه نمیآید، چون بدنه فقط وقتی آزمون هنوز true است اجرا میشود.
چند قاعده که حلقه را روشن نگه میدارد
پرانتز دور سه بخش لازم است. نوشتن for int n = 1; n <= 3; n = n + 1 { … } بدون پرانتز بیرونی را javac قبول نمیکند. نقطهویرگول سه بخش داخل آن پرانتز را جدا میکند. بدنه در این صفحه همیشه داخل آکولاد میماند. در Java بدنهٔ یکخطی بدون آکولاد هم هست، ولی خط دوم زیر for بیرون حلقه میماند مگر آکولاد هر دو را بپوشاند. در هر دو دمو آکولاد بگذارید تا بدنه روشن باشد.
for نه switch است و نه if. switch (choice) یکبار میان برچسبهای case ثابت انتخاب میکند. if (ready) از true یا false یکی از دو مسیر را برمیگزیند. for همان بدنهٔ داخل آکولاد را تکرار میکند وقتی شمارنده جابهجا میشود. switch صفحهٔ Dial یا if صفحهٔ Gate را داخل همان main نگه ندارید و بعد تعجب نکنید چرا صفحه mid یا pass نشان میدهد نه ۱ و ۲ و ۳. main این جلسه فقط حلقهٔ for را نگه میدارد.
اشتباه رایج این است که خودِ نحو را چاپ کنید: System.out.println("for (int n = 1; n <= 3; n = n + 1)");. آن خط نویسههای سرِ for را مینویسد و تکرار نمیکند. اشتباه دیگر گذاشتن گیومه دور n در بدنه است: System.out.println("n"); در هر دور حرف n را مینویسد، نه عدد در حال تغییر را. وقتی میخواهید شمارنده روی صفحه باشد، println(n) را بدون گیومه نگه دارید.
گام n = n + 1 را در کدهای بعدی گاهی با n++ هم میبینید. این صفحه همان n = n + 1 را نگه میدارد تا هر علامت روی خط، کلمه یا عددی باشد که از قبل میخوانید. شروع میتواند از ۰ باشد وقتی درسی لازم داشته باشد؛ اینجا هر دو دمو از ۱ شروع میشوند تا خط اول چاپ با اولین شمارشی که بلند میگویید یکی باشد. اگر آزمون از همان اول false باشد — مثلاً n از ۱ شروع شود و آزمون بگوید n <= 0 — بدنه اصلاً اجرا نمیشود و صفحه خالی میماند. آن هم for درست است؛ دموهای این درس آزمونی نگه میدارند که حداقل یکبار true باشد تا خطهای چاپ را ببینید.
حالا چه کار میتوانید بکنید
میتوانید یک for با شروع و آزمون و گام بنویسید، داخل آکولاد println بگذارید، و شمارنده را روی خطهای پشتسرهم ببینید. عوض کردن آزمون تعداد خطها را عوض میکند. صفحهٔ بعد while است؛ آنجا آزمون جای خودش را دارد و گام داخل بدنه نوشته میشود، نه داخل پرانتز for.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود