CodeGym /وبلاگ جاوا /Random-FA /جاوا برای حلقه
John Squirrels
مرحله
San Francisco

جاوا برای حلقه

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

چگونه یک حلقه for در جاوا بنویسیم؟ برای حلقه به طور کلی

حلقه For برخی از دستورات را برای تعداد معینی بار اجرا می کند. به عنوان مثال، پنجاه بار نوشتن "من نباید اینطور باشم، هو-هو، هو" یا ارسال دعوت نامه برای همه دوستان خود کارهای معمولی برای این نوع حلقه هستند. نحو رایج ترین نسخه حلقه for:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
عبارت اولیه یک بار اجرا می شود، سپس شرط ارزیابی می شود که باید یک عبارت بولی باشد.
  • هنگامی که حلقه شروع می شود، مقداردهی اولیه اجرا می شود.
  • وقتی شرایط به نادرست ارزیابی می شود، حلقه ما کار خود را متوقف می کند.
شمارنده در حال تغییر است، معمولاً افزایش (یا کاهش) پس از هر بار تکرار از طریق حلقه اتفاق می‌افتد. می توانید از هر یک از سه عبارت حلقه (آغاز کردن، بررسی شرایط، تغییر شمارنده) صرفنظر کنید. وضعیت حلقه قبل از مرحله بعدی حلقه بررسی می شود. اگر شرط نادرست باشد، برنامه از حلقه خارج می شود و با دستور زیر ساخت for ادامه می دهد. در اینجا ما یک بلوک دیاگرام از حلقه for داریم. حلقه For در جاوا - 2

نحوه استفاده از حلقه for در جاوا مثال ساده

در اینجا یک مثال جاوا برای حلقه خاص است. بیایید ده بار بنویسیم "سلام!" هر بار از خط جدید با تعدادی از این خط رشته کنید. باید خروجی بعدی را بگیریم:
  1. سلام!
  2. سلام!
  3. سلام!
  4. سلام!
  5. سلام!
  6. سلام!
  7. سلام!
  8. سلام!
  9. سلام!
  10. سلام!
در اینجا برنامه جاوا ما است که این مشکل را حل می کند:

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

چگونه کار می کند؟

مرحله 1. شمارنده i = 0. حلقه شرایط ما را بررسی می کند، i << 10، از این رو، دستورات حلقه اجرا می شوند. عبارت "1. سلام!" را چاپ می کند. 1 یک رشته i + 1 است (چون ما از صفر شمردیم، اما خط اول هنوز اولین است). شمارنده i افزایش یافته است. اکنون، i = 1. مرحله 2. شمارنده i = 1. i < 10، بنابراین یک عبارت "2. سلام!" و i + 1 = 2. … مرحله 10. شمارنده i = 9، "10. سلام!" و i به 10 افزایش می یابد. مرحله 11. شمارنده i = 10. i < 10 ? نه، دروغ است. بنابراین، حلقه به پایان می رسد. حلقه For در جاوا - 3

حلقه while و حلقه for: تفاوت ها و شباهت ها

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

while (boolean condition)
       {
            loop statements...
       }
اغلب اوقات می توانید انتخاب کنید که از کدام حلقه استفاده کنید. گاهی اوقات بسیار نزدیک هستند و می توانید از هر دوی آنها استفاده کنید. به عنوان مثال، در اینجا کد مربوط به همان کار (نوشتن ده بار "Hello!" با تعدادی از خط) است که با حلقه while نوشته شده است:

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
با این حال، برنامه نویسان حرفه ای واقعاً حلقه while را دوست ندارند و هر جا ممکن است سعی کنید از حلقه for استفاده کنید.
برای در حالی که

اگر از قبل تعداد تکرارها را می دانستیم، از حلقه for استفاده می کنیم.

اگر دقیقا تعداد تکرارها را ندانیم از حلقه while استفاده می کنیم.

مقداردهی اولیه، بررسی شرایط و تغییر شمارنده قبلاً در نحو یک حلقه دوخته شده است

مقداردهی اولیه و بررسی شرایط در داخل حلقه. همچنین می توانید از شمارنده در عبارات استفاده کنید.

حلقه بی نهایت برای:


for(;;){
	System.out.println("working...");
}

حلقه بی نهایت در حالی که:


while(true){
	System.out.println("working...");
}

نحوه خروج از حلقه for در جاوا

معمولاً یک حلقه for مانند یک جریان در حال اجرا است و راه طبیعی برای خروج از یک حلقه زمانی است که یک شرط مقدار نادرست می گیرد. با این حال دو دستور کنترل وجود دارد که به شما امکان می‌دهد قبل از دریافت مقدار نادرست یک شرط از حلقه خارج شوید - شکستن و ادامه دادن.
  • break اجازه می دهد تا از بدنه حلقه فعلی خارج شویم، گویی که شرط حلقه به نادرست ارزیابی شده است.
  • ادامه، حلقه را برای پرش به مرحله بعدی (تکرار شمارنده) بدون اجرای دستورات می سازد.
بیایید مشکل بعدی را با استفاده از break حل کنیم و ادامه دهیم. ما آرایه ای از نام ها داریم و از این آرایه به همه به جز غریبه ها سلام می کنیم. بنابراین اگر در طول حلقه خود با یک رشته "غریبه" روبرو شدیم، از آن خارج می شویم (بروید و توقف کنید تا به دیگران سلام کنید).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
نتیجه اجرای برنامه ما این است:

Hello,Mike
Hello,Dustin
I don't chat with strangers
دیدن؟ قبل از اینکه به لوکاس و ویل سلام کنیم از حلقه فرار کردیم. حالا بیایید از ادامه استفاده کنیم، فقط برای نادیده گرفتن یک "غریبه" اما در داخل حلقه بمانیم تا به دوستان دیگر سلام کنیم.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
نتیجه این است:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
عالی! با همه دوستان احوالپرسی کردیم اما با غریبه ای صحبت نکردیم.

نسخه پیشرفته برای حلقه یا برای هر

For-each نوعی حلقه for است که برای پردازش تمام عناصر یک آرایه یا مجموعه استفاده می شود. در واقع، خود عبارت for-each در این چرخه استفاده نمی شود. نحو به شرح زیر است:

for (type itVar: array)
{
    Block of operators;
}
در جایی که type نوع متغیر تکراری است (همان نوع داده آرایه)، ItVar نام آن است، آرایه آرایه است یا می‌تواند ساختار داده دیگری مانند ArrayList وجود داشته باشد. همانطور که می بینید، شمارنده ای وجود ندارد، متغیر تکرار روی عناصر یک آرایه یا مجموعه تکرار می شود و نه مقادیر شاخص. هنگامی که چنین حلقه ای اجرا می شود، به متغیر تکرار به ترتیب مقدار هر عنصر از آرایه یا مجموعه اختصاص داده می شود، پس از آن بلوک مشخص شده از دستورات (یا عملگر) اجرا می شود. توجه: حلقه for-each را می توان برای آرایه ها و هر کلاسی که رابط java.lang.Iterable را پیاده سازی می کند، اعمال کرد. بیایید همین مشکل را با سلام دوستان، نادیده گرفتن غریبه ها ("غریبه") حل کنیم، اما این بار برای هر حلقه استفاده کنید.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
برای تقویت آموخته هایتان، پیشنهاد می کنیم یک درس ویدیویی از دوره جاوا ما تماشا کنید
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION