در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

با سلام به همه دوستان و همراهان Itpro. کدها در زبانهای برنامه نویسی مانند جاوا به ترتیب و خطی اجرا می شوند. به این معنی که از متد main شروع شده و خط به خط اجرا می شوند. حال ممکن است که حالاتی پیش بیاید که بخواهیم یک قسمت از کد چند بار اجرا شود. زبان های برنامه نویسی راه های مختلفی فراهم کرده اند که این نوع اجرا خطی را تغییر دهد. یکی از این راه ها حلقه های تکرار(loop) هستند. حلقه ها می توانند که یک سری دستورات را چندین بار اجرا کنند. در بسیاری از زبان های برنامه نویسی فلوچارت حلقه تکرار به شکل زیر است:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

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

حلقه while

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

while(عبارت شرطی)
{
   //دستورات حلقه که باید تکرار شوند
}

دستورات داخل حلقه می تواند یک خط دستور باشند یا یک بلوک کد باشند. عبارت شرطی ممکن است که یک متغیر باشد و یا چندین عبارت شرطی باشد و یا مقادیر true و یا false باشد و به طور کلی هرچیزی که مقدار true یا false برمی گرداند می تواند باشد. هنگامی که نتیجه عبارت شرطی while درست باشد کد داخل حلقه اجرا خواهد شد و اگر false باشد اجرا نمی شود. نمودار دیاگرام این حلقه در شکل زیر آمده است:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

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

public class Test {

   public static void main(String args[]) {
      int x = 10;

      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
		 System.out.print("ITPRO\n");
      }
   }
}

و نتیجه اجرای آن به شکل زیر خواهد بود:

value of x : 10
ITPRO
value of x : 11
ITPRO
value of x : 12
ITPRO
value of x : 13
ITPRO
value of x : 14
ITPRO
value of x : 15
ITPRO
value of x : 16
ITPRO
value of x : 17
ITPRO
value of x : 18
ITPRO
value of x : 19
ITPRO

حلقه for

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

for(initialization; Boolean_expression; update)
{
   //قطعه کد تکرار شونده
}

هریک از قسمت های موجود در این حلقه را در ادامه شرح می دهیم:

  1. بخش initialization در ابتدا اجرا می شود. این قسمت در کل حلقه فقط یک بار اجرا خواهد شد. این مرحله به شما این اجازه ره می دهد که مقدمات اجرای حلقه را فراهم کنید. به عبارت دیگر متغیری که قرار است حلقه را کنترل کند را در این بخش معرفی و مقداردهی می کنیم. پس بخش initialization باید علامت سمی کالن (;) استفاده کنید.
  2. قسمت دوم Boolean Expression می باشد. در این بخش یک عبارت شرطی وجود دارد که اگر نتیجه این بخش true باشد حلقه اجرا خواهد شد و اگر false باشد حلقه اجرا نمی شود. در این بخش می توان متغیر کنترل کننده حلقه را چک کرد.
  3. پس از این که بدن حلقه یعنی همان قطعه کد اجرا شونده اجرا شود قسمت update اجرا خواهد شد. دقت داشته باشید که قسمت update هر بار پس از اجرای بدنه حلقه اجرا می شود. در قسمت update می توانید اعمالی مانند زیاد یا کم کردن متغیر کنترل کردن حلقه در این قسمت انجام می شود. این قسمت از حلقه حتی می تواند خالی باشد.

زمانی که قسمت Boolean expression مقدار false برگرداند حلقه دیگر اجرا نمی شود. نمودار دیاگرام این حلقه به شکل زیر است:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

به مثال زیر توجه کنید:

public class Test {

   public static void main(String args[]) {

      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

همان طور که در کد می بینید قسمت initialization این حلقه یک متغیر از نوع int با نام x تعریف شده است و مقدار آن 10 می باشد. همچنین عبارت شرطی این حلقه x<20 می باشد. همچنین در قسمت update این حلقه یک واحد به x اضافه شده است.

حلقه do…while

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

do
{
   //بدنه حلقه
}while(شرط حلقه);

همانگونه که می بینید شرط حلقه در انتها است پس یک بار بدنه حلقه اجرا می شود. وقتی که به شرط حلقه می رسیم اگر مقدار true داشته باشد دوباره به ابتدای بدنه بازمی گردیم و دوباره حلقه اجرا می شود. اما اگر شرط حلقه false باشد بازگشت انجام نمی شود و از حلقه خارج می شویم. دیاگرام این حلقه به شکل زیر است:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

برای مثال این حلقه به شکل زیر توجه نمایید:

public class Test {

   public static void main(String args[]){
      int x = 10;

      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}

نتیجه اجرای کد بالا به شکل زیر خواهد بود:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

عبارات کنترل کننده حلقه ها

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

دستور break

دستور break در زبان جاوا دو کاربرد دارد.

  1. وقتی که در اجرای حلقه به خط break می نویسیم حلقه در همان نقطه تمام شده و خارج می شود. و برنامه از خط بعد از حلقه ادامه پیدا می کند.
  2. در بلوک switch مورد استفاده قرار می گیرد که شرط case ها از یکدیگر جدا باشد که این بخش را در مطالب آینده توضیح خواهیم داد.

نحوه نوشتن این دستور به شکل زیر است:

break;

دیاگرام این دستور به شکل زیر است:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

برای مثال به کد زیر دقت کنید:

public class Test {

   public static void main(String args[]){
      int x = 10;

      for(int x=5;x<100;x=x+5){
         System.out.print("value of x : " + x );
       if(x==20)
		   break;
         System.out.print("\n");
      }
   }
}

خروجی کد بالا به شکل زیر است

value of x : 5
value of x : 10
value of x : 15
value of x : 20

در حلقه بالا گفته ایم که تا وقتی که x کوچکتراز 100 باشد حلقه باید اجرا شود. ولی در داخل بدنه حلقه گفته ایم که اگر x برابر 20 بود اجرای حلقه تمام شود.

دستور continue

این دستور در همه ی حلقه ها قابل استفاده است. نحوه کار این دستور به این شکل است که در هنگام اجرای حلقه وقتی که به این دستور میرسیم در هر جای حلقه قرار داشته باشیم ادامه اجرا لغو می شود و به ابتدای حلقه بازمی گردیم. دقت داشته باشید که اگر در داخل حلقه for قرار داشته باشیم بخش update پس از رسیدن به continue اجرا خواهد شد و سپس شرط حلقه چک می شود. همچنین اگر در حلقه while یا do…while باشد وقتی به دستور continue می رسیم به ابتدای حلقه رفته و شرط حلقه چک می شود. شکل نوشتاری این دستور به شکل زیر است:

continue;

دیاگرام این دستور به شکل زیر خواهد بود:

آموزش جاوا (Java) قسمت 10 : حلقه های تکرار

مثالی از این دستور در ادامه آمده است:

public class Test {

   public static void main(String args[]){
        for(int x=5;x<35;x=x+5){
         
       if(x==20)
		   continue;
	   System.out.print("value of x : " + x );
        System.out.print("\n");
      }
   }
}

نتیجه اجرای کد به شرح زیر است:

value of x : 5
value of x : 10
value of x : 15
value of x : 25
value of x : 30

همانطور که مشاهده می کنید وقتی که مقدار x برابر 20 می شود دستور continue اجرا نمی شود و دوباره به ابتدای حلقه بازگشت داده می شود و مقدار 20 چاپ نمی شود.

شکل پیشرفته حلقه for

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

for(declaration : expression)
{
   //Statements
}

  1. در قسمت declaration باید یک متغیر تعریف کنیم. نوع این متغیر باید متناسب با نوع آیتم های مجموعه مورد نظر باشد. برای مثال اگر قصد پیمایش لیستی از اعداد صحیح داریم این متغیر باید از نوع int باشد.
  2. در قسمت expression باید نام مجموعه مورد نظر که می خواهیم آن را پیمایش کنیم آورده شود. این مجموعه می تواند یک آرایه باشد یا حتی می تواند یک متد باشد که مقدار بازگشتی آن آرایه باشد. برای مثال به کد زیر دقت کنید:
  3. public class Test {
    
       public static void main(String args[]){
          int [] numbers = {10, 20, 30, 40, 50};
    
          for(int x : numbers ){
             System.out.print( x );
             System.out.print(",");
          }
          System.out.print("\n");
          String [] names ={"James", "Larry", "Tom", "Lacy"};
          for( String name : names ) {
             System.out.print( name );
             System.out.print(",");
          }
       }
    }
    

خروجی کد بالا به شکل زیر خواهد بود:

10,20,30,40,50,
James,Larry,Tom,Lacy,

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

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#حلقه_for_در_جاوا #برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #تفاوت_حلقه_ها_در_جاوا #حلقه_do_در_جاوا #آموزش_جاوا #حلقه_while_در_جاوا #دوره_آموزشی_جاوا #زبان_برنامه_نویسی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
4 نظر
omidmehraban

باسلام و خسته نباشید

بسیار عالی بود،جناب عادلی فر عزیز فقط اگه جسارت نباشه مباحث رو با ترتیب خاصی بذارین،مباحث و مطالب گذشتتون ترتیب خاصی نداشت مثلا قبل تعریف آرایه ها ،مبحث Arraylist و تفاوتش با آرایه رو مطرح کردین و چن نمونه دیگر،ممنون از زحماتتون

مهدی عادلی فر

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

Nabax

سلام و عرض ادب و تشکر ویژه از زحماتتون

من تازه با سایتتون آشنا شدم واقعا دمتون گرم حرف نداره

یه سوال داشتم خدمتتون

اگه ما چندتا آریه از نوع integer داشته باشیم

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

مثلا

3 6 7 9 13

6 9 5 11 33

89 53 17 21

من با استفاده از حلقه ستون هارو به ترتیب جمع میکنم

ولی برای سطر ها به مشکل برخوردم

ینی اجرا میشه ولی متاسفانه مجموع کل رو بدست میاره

من میخوام هر سطر جداگانه جلوی خودش محاسبه بشه

مهدی عادلی فر

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

ولی به همان شکلی که با حلقه ستون ها را جمع می کنید می توانید با جابه جا کردن شمارنده حلقه و اندیس سطر این کار را انجام دهید. مثلا a[i][1] را به شکل a[1][i] بنویسید.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....