حلقه تکرار for در زبان جاوا
جلسات دوره
مدرس:
مهدی عباسی
18
سال سابقه برنامهنویسی و تدریس برنامهنویسی
کسب مقامهای اول و دوم کشوری در مسابقات برنامهنویسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
حلقه های تکرار در زبان جاوا
دستور for در زبان جاوا
در برخی از برنامه ها ممکن است نیاز باشد دستور یا دستوراتی را به صورت تکراری بنویسیم.
در زبان جاوا ما از سه دستور for , while , do-while برای تکرار تکه کد ها میتوانیم استفاده کنیم؛ هر کدام از این دستورات کاربرد خاص خود را دارند که با آن ها آشنا خواهیم شد.
برای چاپ کردن یک کلمه به تعداد 5 و یا حتی 50 بار ما میتوانیم از عمل کپی و چسباندن استفاده کنیم؛ اما اگر قرار باشد 500 بار تکرار کنیم انجام این کار با کپی کردن غیر ممکن میشود، چون هم حجم برنامه بالا میرود و هم برنامه ما اصلا دوست داشتنی نخواهد بود.
دستور for اینگونه است که کلمه for نوشته میشود و جلوی آن یک پرانتز قرار میگیرد؛
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
for()
}
}
این پرانتز به کمک سه عدد کارکتر ";" به سه قسمت تقسیم میشود؛
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
for(;;)
}
}
در بخش اول مشخص میکنیم که از چه مقداری شمارش شروع شود؛
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=10;;)
}
}
در بخش دوم پایان بازه عددی مورد نظر را مشخص میکنیم؛
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=10;50;)
}
}
در بخش سوم میزان پرش یا حرکت حلقه مشخص میشود، یعنی این که حلقه چند تا چند تا شمارش را انجام دهد؛
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=10;50;i++)
}
}
بعد از پرانتز یک آکولاد یا بلاک قرار میگیرد که تعیین کنندهی دستوراتی است که تحت کنترل for میباشند.
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=10;50;i++){
System.out.println("darsman.com");
}
}
}
برای مثال میخواهیم یک عمل چاپ را 10 بار تکرار کنیم؛ کد پایین این عمل را برای ما انجام میدهد.
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=1;i<=10;i++){
System.out.println("darsman.com");
}
}
}
نکته:
در بلاک کد دستور for به تعداد دلخواه میتوانیم کد بنویسیم و هیچ محدودیتی ندارد.
علاوه برا این که مقدار های شروع و پایان مشخص کننده این است که کد ها چند بار تکرار شوند مقدار پرش نیز تاثیر گذار است.
برای درک بهتر این موضوع به قطعه کد پایین توجه کنید.
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=1;i<=10;i+=2){
System.out.println("darsman.com");
}
}
}
این نوع حلقه ها، حلقه های سعودی نام دارند یعنی مقدار آنها افزایش پیدا میکند.
برای حلقه های افزایشی میتوان از عملگر های "+" و "*" استفاده نمود.
همانطور که میتوان از حلقه های افزایشی استفاده کرد از حلقه های کاهشی نیز میتوان استفاده کرد برای مثال به کد زیر توجه کنید:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
int i;
for(i=5;i>=1;i--){
System.out.println("darsman.com");
System.out.println(i);
}
}
}
همان طور که میدانید آخرین مقدار متغیر "i" عدد1 میشود و پس از یک واحد کم شدن آن دیگر شرط حلقه ما قابل اجرا نیست و کامپایلر از حلقه خارج میشود و کد های بعد از حلقه را اجرا میکند.
اگر در این لحظه ما متغیر"i" را چاپ کنیم شاهد این خواهیم بود که عدد 0 چاپ میشود. این عمل تنها در صورتی قابل اجرا است که متغیر "i" در خارج از حلقه تعریف شده باشد.
برای تعریف متغیر در داخل حلقه از روش زیر استفاده میکنیم:
package mypac;
import java.util.Scanner;
public class myclas {
public static void main(String[] args) {
for(int i=5;i>=1;i--){
System.out.println("darsman.com");
System.out.println(i);
}
}
}
به طور کلی اگر متغیر شمارندهی حلقه در داخل حلقه تعریف شود تنها در داخل همان حلقه قابل استفاده است و در خارج از آن حلقه این متغیر شناسایی نمیشود.
شاید برای شما این سوال پیش بیاید که که بهتر است متغیر در داخل حلقه تعریف شود یا در خارج؟
جواب این سوال بستگی به کارایی آن متغیر دارد؛ اگر شما فقط در داخل حلقه به آن نیاز داشته باشید پس بهتر است آن را در داخل حلقه تعریف کنید با این کار استفاده بیخودی از حافظه جلوگیری میشود؛ اما اگر خارج از حلقه باز هم به آن متغیر نیاز داشته باشید باید آن را در خارج از حلقه تعریف کنید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.