شما می توانید با ارسال ایمیل خود ، بصورت رایگان مشترک شده و از بروزسانی مطلع شوید.

ایمیل خود را وارد کنید:

اوراکل (ADF(Application Development Framework یک چارچوب(Framework)  کلی می باشد که برروی استانداردهای Java EE و تکنولوژی های Open Source جهت سادگی و پیاده سازی سریع تر برنامه های Java EE ایجاد شده است که کاملا توسعه پذیر و قابل تنظیم بوسیله افزودن یا اصلاح کتابخانه ها می باشد. ADF وظایف را از طریق ایجاد سرویس […]

CardLayout پنجره ای را در نظر بگیرید که شامل چندین پنل می باشد که در یک زمان فقط یکی از این پنل ها قابل مشاهده می باشد،با استفاده از کلاس java.awt.CardLayout شما می توانید کامپوننتی را ایجاد کنید که فقط یکی از این پنل ها را در یک زمان نمایش دهد، مانند شکل زیر: زمانی […]

اطلاعات سخت افزاری CPU اطلاعات CPU شامل جزئیاتی  مثل معماری ، نام سازنده ، مدل ، تعداد هسته ها ، سرعت هرکدام از هسته ها و غیره است. برای دسترسی به چنین جزئیاتی درباره سخت افزار CPU در لینوکس، تعداد بسیار اندکی کامند برای این منظور وجود دارد که ما در اینجا بطور مختصر تعدادی […]

حلقه ها(Loops)

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

int totalElements = friends.length;
for (int i=0; i < totalElements;i++){
System.out.println("My freind’s name is: " + friends[i]);
}

در این کد حلقه ما از صفر شروع می شود ودر هر بار که بدنه حلقه اجرا می شود یکی به مقدار شروع اضافه می کند.

 for( شروع ; شرط حلقه ; گام حلقه ) {

            بدنه حلقه

}

حال اگر حلقه خود را با برنامه تعریف آرایه ها ترکیب کنیم کد ما به شکل زیر در خواهد آمد:

public class FriendArray {
public static void main(String[] args) {
String [] friends = new String [10]; // Declare and instantiate array
friends [0] = "Saeed"; //Initialize the first element
friends [1] = "Reza”; //Initialize the second element
friends [2] = "Ali";
friends [8] = "Amir";
friends [9] = "Mohammad";
int totalElements = friends.length;
for (int i=0; i < totalElements;i++){
System.out.println("my friend’s name is " + friends[i]);
}

از آنجایی که آرایه freinds به اندازه ۱۰ تعریف شده است جاوا در هنگام اجرا حافظه ای ۱۰ عنصری به آرایه اختصاص داده است اما از آنجایی که فقط ۵ تا از خانه های آن دارای مقدار هستند خروجی کد ما به شکل زیر در خواهد آمد:

my friend’s name is  Saeed

my friend’s name is  Reza

my friend’s name is  Ali

my friend’s name is  null

my friend’s name is  null

my friend’s name is  null

my friend’s name is  null

my friend’s name is  null

my friend’s name is  Amir

my friend’s name is  Mohammad

null جز کلمات کلیدی زبان جاوا می باشد و بمعنی مقدار هیچ است و بدین معنی است که آرایه در آن خانه دارای هیچ مقداری نیست، با اینکه آرایه باندازه ۱۰ تعریف شده است اما چون ۵ تا از خانه های آن مقداردهی شده اند، فقط ۵تای آن چاپ شده و بقیه null هستند.

for-each

روش دیگری که برای نوشتن حلقه های for وجود دارد به حلقه for-each مرسوم است.

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

for (String friend: friends){
System.out.println("my friend’s name is  " + friend);
}

while

برنامه بالا را می توانید با استفاده از حلقه while هم بنویسید.از while زمانی اسفاده می کنیم که تعداد عناصر آرایه را دقیقا نمی دانیم اما شرط خروج از حلقه را می دانیم،برای نوشتن این حلقه از while استفاده می کنیم:

int totalElements = friends.length;
int i=0;
while (i<totalElements){
System.out.println("my friend’s name is  " + friends[i]);
i++; // i=i+1;
}

برای مثال فرض کنید برنامه ای قرار است رکوردهای درون یک پایگاه داده را خوانده و آنها را پردازش کند،لذا وقتی برنامه خود را می نویسید اصلا از تعداد رکوردهایی که برنامه شما پردازش خواهد کرد آگاهی ندارید، حتی نمی دانید که تعداد رکوردها تغییر خواهد کرد یا نه.برای همین بهتر است همیشه از حلقه های با شرط استفاده کنیم تا حلقه هایی که دارای تکرار مشخص و معین هستند.

break

برای خروج از حلقه تکرار می توانید از دستور break استفاده کنید. برای مثال اگر بخواهیم اولین عنصری که در آرایه دارای مقدار null هست را بیابید مانند زیر عمل می کنیم:

while (i<totalElements){
if (friends[i]==null){
System.out.println("The element " + (i+1) + " is null");
break;
}
System.out.println("my friend’s name is  " + friends[i]);
i++;
} // closing curly brace for the loop

دستورif در کد بالا مقدار هر عنصر آرایه بررسی می کند و بمحض اینکه عنصری با مقدار null را پیدا کند از حلقه خارج می شود و اجرای دستورات خط بعداز اکولاد بسته ی حلقه while ادامه می یابد.

continue

کلمه کلیدی continue به شما این امکان را می دهد که حلقه تکرار خود را مجبور کند به خط اول پرش کند و شرط حلقه را دوباره بررسی کند.در قطعه کد زیر مقدار عناصری از آرایه چاپ خواهد شد که دارای مقدار هستند و null نمی باشند.

while (i<totalElements){
if (friends[i]==null){
i++;
continue;
 }
System.out.println("my friend’s name is  " + friends[i]);
i++;
}
System.out.println("The iteration is over");

مثال: حلقه while با ساختار continue

public class WhileLoopDemo {
public static void main(String[] args) {
String [] friends = new String [10];
friends[0] = "Saeed";
friends[1] = "Reza";
friends[2] = "Ali";
friends[8] = "Amir";
friends[9] = "Mohammad";
int totalElements = friends.length;
int i=0;
while (i<totalElements){
if (friends[i]==null){
i++;
continue;
}
System.out.println("my friend’s name is  " + friends[i]);
i++;
}
System.out.println("The iteration is over");
}
}

do-while

نوع دیگری از حلقه مرسوم به do-while می باشد که بندرت استفاده می شود، این نوع حلقه با کلمه کلیدی do شروع می شود و سپس بدنه حلقه داخل آکولادهی باز و بسته قرار می گیرد و در آخر با شرط while ختم می شود. این نوع حلقه تضمین می کند که بدنه حلقه حداقل بکبار کامل اجرا می شود، زیرا شرط while در آخر و بعد از بدنه قرار دارد،در مثال زیر تمام عناصر آرایه friends توسط حلقه do-while چاپ خواهد شد حتی اگر خانه ای از آزایه null داشته باشد:

do {
System.out.println("Reading the element" + i +" of array friends");
if (friends[i]==null){
i++;
continue;
}
System.out.println("my friend’s name is  " + friends[i]);
i++;
}
} while (i<totalElements);

بدترین چیزی که یک برنامه نویس می تواند در استفاده از حلقه های تکرار داشته باشد خطا در تعیین شرط خروج از حلقه است، و با اشتباه خود می تواند باعث شود که شرط حلقه همیشه true ارزیابی شود،در مباحث برنامه نویسی این اتفاق بعنوان حلقه بی نهایت شناخته می شود، برای اینکه دقیقا منظور حلقه بی نهایت را درک کنید در قسمتی که متغییر را افزایش می دهیم در داخل بلوک دستور if را حذف کنید اجرا برنامه شما هیچ وقت به پایان نخواهد رسید مگر اینکه اجرا برنامه را به زور قطع کنید و یا کامپیوتر شما خاموش شود.دلیل این اتفاق بسیار روشن است.اگر دستور ++i در داخل بلوک if  را حذف کنید   بدون اینکه i افزایش یابد با دستور continue اجرای حلقه از سر گرفته می شود، وچون i افزایش نمی یابد لذا شرط خروج از حلقه هیچگاه محقق نمی شود و حلقه بی نهایت بار اجرا می شود.

دیدگاه خود را به ما بگویید.