logo logo
خوش آمدید! برای فعال سازی امکانات لطفا ورود یا ثبت نام.

توجه

Icon
Error

آموزش برنامه نویسی جاوا – قسمت هفتم – حلقه ها و اعداد
developzoom
#1 ارسال شده : چهارشنبه، 24 اوت 2016 10:56:28 ب.ظ(UTC)
developzoom

رتبه: Member

گروه ها: Registered
تاریخ عضویت: 20/04/2016(UTC)
ارسالها: 20
IRAN (ISLAMIC REPUBLIC OF)
مکان: ایران

حلقه ها در جاوا

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



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

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


دستور کنترل حلقه

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

جاوا از دستورات کنترلی زیر پشتیبانی می کند.

دستورات کنترلی توصیف
break statement حلقه را پایان می دهد یا دستورات را سوئیچ می کند و اجرا را به دستوراتی که بلافاصله بعد از حلقه آمده اند انتقال می دهد.
continue statement باعث می شود که حلقه به باقی مانده دستورات بدنه اش برگردد و بلافاصله حالت خود را به شرایط قبل از تکرار تنظیم کند.
حلقه for پیشرفته در جاوا

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

نحوه نوشتن for پیشرفته

نحو نوشتن حلقه for پیشرفته بصورت زیر است:

1
2
3
4
for(declaration : expression)
{
//Statements
}
Declaration: متغیر بلوک تازه اعلان شده ، که از نوع سازگار با عناصر آرایه ای که شما به آن دسترسی دارید. متغیر داخل بلوک for در دسترس خواهد بود و مقدارش برابر با عنصر آرایه فعلی خواهد بود.

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

مثال:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,
در ادامه درباره دستورات تصمیم گیری در جاوا صحبت خواهیم کرد.

جاوا – تصمیم گیری

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

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



زبان برنامه نویسی جاوا انواع دستورات تصمیم گیری زیر را فراهم کرده است. در جدول دستورات تصمیم گیری همراه با جزئیات آورده شده است.

Statement Description
if statement یک دستور if متشکل از یک عبارت بولی همراه با یک یا چند دستور است.
if…else statement بدنبال دستور if می تواند دستور اختیاری else آورده شود. دستورات else زمانی اجرا خواهند شد که عبارت بولین نادرست باشد.
nested if statements شما می توانید از دستورات if و else if در داخل دستور یا دستورات if و یا else if دیگر استفاده کنید.
switch statement دستور switch اجازه می دهد تا یک متغیر با یک لیست از مقادیر تست شود تا مشخص شود با کدام مقدار برابر است تا دستورات مربوط به آن اجرا شوند.

عملگر علامت سوال “؟”

جاوا عملگر شرطی ؟ را پوشش می دهد. می توانید از عملگر ؟ برای جایگزین کردن با دستورات if…else استفاده کنید. که شکل کلی آن بصورت زیر است:

1
Exp1 ? Exp2 : Exp3;
که در آن EXP1، Exp2 و Exp3 عبارت می باشد. به استفاده و مکان دونقطه توجه داشته باشید.
برای تعیین ارزش کل عبارت، در ابتدا EXP1 ارزیابی می شود.
اگر مقدار EXP1 درست باشد، پس مقدار کل عبارت برابر با مقدار Exp2خواهد بود .
اگر مقدار EXP1 نادرست باشد، سپس مقدار Exp3 ارزیابی شده و مقدار آن برابر با مقدار کل عبارت می شود.
در ادامه در مورد کلاس Number (در بسته ی java.lang) و کلاس های مشتق شده از آن در زبان جاوا صحبت خواهیم کرد.
ما به دنبال شرایطی هستیم که در آن شما بایستی از کلاس های تعریف شده به جای انواع داده اولیه استفاده کنید، و همچنین کلاس هایی مانند قالب بندی، توابع ریاضی که شما در هنگام کار با اعداد به آنها نیاز خواهید داشت.

کلاس Number – جاوا

به طور معمول، هنگامی که ما با اعداد کار می کنیم، از انواع داده های اولیه مانند byte, int, long, doubleو غیره استفاده می کنیم.

مثال:

1
2
3
int i = 5000;
float gpa = 13.65;
byte mask = 0xaf;
با این حال، در توسعه، شرایطی پیش می آید که نیاز به استفاده از اشیاء به جای انواع داده اولیه است. به این منظور جاوا کلاس های wrapper را فراهم می کند .

همه کلاس های wrapper (Integer, Long, Byte, Double, Float, Short) مشتق شده از کلاس Number انتزاعی هستند.



اشیای کلاس wrapper نوع داده اولیه مربوط به آن را پوشش داده اند. تبدیل انواع داده اولیه به شی boxing نامیده می شود. بنابراین در حالی که از کلاس wrapper استفاده می کنید، شما فقط نیاز دارید تا مقدار نوع داده اولیه را به سازنده کلاس Wrapper بدهید.

و شی Wrapper شده به نوع داده اولیه تبدیل خواهد شد ، و این فرآیند un boxing نامیده می شود. کلاس Number بخشی از بسته ی java.lang است.

در اینجا یک مثال از boxing و un boxing آورده شده است:

1
2
3
4
5
6
7
8
public class Test{

public static void main(String args[]){
Integer x = 5; // boxes int to an Integer object
x = x + 10; // unboxes the Integer to a int
System.out.println(x);
}
}
مثال نتیجه ی زیر را تولید می کند:

15
زمانی که به x مقدار صحیح اختصاص داده می شود، کامپایلر عدد صحیح را boxing می کند، زیرا X عدد صحیح است. پس از آن، x ، un boxing می شود تا اینکه آنها بتوانند به عنوان عدد صحیح اضافه کنند.

متدهای Number:

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

شماره توضیحات متدها
۱
xxxValue()

تبدیل مقدار این شی number به نوع داده ها XXX و برگرداندن آن.
۲
compareTo()

مقایسه شی this Numberبا آرگومان ورودی.
۳
equals()

مشخص کردن اینکه آیا شی this numberبا آرگومان ورودی برابر است
۴
valueOf()

یک شی صحیح را می گیرد و مقدار آن را به نوع داده اولیه مشخص شده برمی گرداند.
۵
toString()

آرگومان ورودی را که مقدارش با int نمایش داده می شود به رشته تبدیل می کند.
۶
parseInt()

این روش برای به دست آوردن نوع داده اولیه از یک رشته خاص است.
۷
abs()

مقدار قدر مطلق آرگومان ورودی را برمی گرداند.
۸
ceil()

کوچکترین عدد صحیح بزرگتر یا برابر با آرگومان ورودی را با نوع داده double بر می گرداند.
۹
floor()

بزرگترین عدد صحیح کمتر یا برابر با آرگومان ورودی را برمی گرداند. عدد بازگشتی با نوع داده double است.
۱۰
rint()

عدد صحیح که به مقدار آرگومان ورودی نزدیک ترین است را برمیگرداند. عدد بازگشتی با نوع داده double است.
۱۱
round()

نزدیکترین عدد long یا int را بر میگرداند، که توسط متد نوع بازگشتی برای آرگومان مشخص می شود.
۱۲
min()

کوچکترین مقدار از دو آرگومان ورودی را برمی گرداند
۱۳
max()

بزرگترین مقدار از دو آرگومان ورودی را برمی گرداند
۱۴
exp()

پایه لگاریتم طبیعی، e، به توان آرگومان ورودی را بر می گرداند.
۱۵
log()

لگاریتم آرگومان ورودی را بر می گرداند
۱۶
pow()

حاصل مقدار آرگومان اول به توان آرگومان دوم را برمی گرداند.
۱۷
sqrt()

جذر آرگومان ورودی را بر می گرداند
۱۸
sin()

sin آرگومان ورودی را بر می گرداند
۱۹
cos()

cos آرگومان ورودی را بر می گرداند
۲۰
tan()

tan آرگومان ورودی را بر می گرداند
۲۱
asin()

arcsine آرگومان ورودی را بر می گرداند
۲۲
acos()

arccosine آرگومان ورودی را بر می گرداند
۲۳
atan()

arctangent آرگومان ورودی را بر می گرداند
۲۴
atan2()

مختصات مستطیلی (x, y) به مختصات قطبی (r, theta) تبدیل می کند و و تتا را برمی گرداند.
۲۵
toDegrees()

آرگومان ورودی را به درجه تبدیل می کند
۲۶
toRadians()

آرگومان ورودی را به رادیان تبدیل می کند
۲۷
random()

یک عدد تصادفی بر میگرداند
کاربرانی که در حال مشاهده انجمن هستند
Guest
جهش به انجمن  
شما مجاز به ارسال مطلب در این انجمن نمی باشید.
شما مجاز به ارسال پاسخ در این انجمن نمی باشید.
شما مجاز به حذف مطلب ارسالی خود در این انجمن نمی باشید.
شما مجاز به ویرایش مطلب ارسالی خود در این انجمن نمی باشید.
شما مجاز به ایجاد نظر سنجی در این انجمن نمی باشید.
شما مجاز به رای دادن در این انجمن نمی باشید.