تعریف
برای تکرار یک عمل از حلقه استفاده میکنیم.
در دستور شرطی if اگه شرط برقرار باشه کد های داخل بدنه ی if یک بار اجرا میشه.
در حلقه ها رفتار مشابهی وجود داره؛ با برقرار بودن شرط، کد های داخل حلقه اجرا میشه؛ پس از یک بار اجرای این کد ها، تازمانی که شرط برقرار باشه این عمل تکرار میشه.
یک حلقه تا زمانی که شرط برقرار باشه به تکرار ادامه میده و تعریف شرط برای حلقه اجباریه.
در جاوا سه حلقه ی for ، while , do-while داریم که هرکدوم کاربرد های خودشونو در برنامه نویسی دارن.
حلقه ی for
حلقه ی for در جاوا دارای چهار بخشه:
۱- تعریف یک یا چند متغیر و اختصاص دادن مقدار به هر متغیر در صورت لزوم؛ این عمل یکبار هنگام شروع حلقه، انجام میشه (اختیاری)
۲- بررسی شرط (condition) پس از هر بار تکرار حلقه (الزامی)
۳- بیان یک یا چند عبارت که با هر بار تکرار حلقه اجرا میشن (اختیاری)
۴- بدنه ی حلقه و اجرای کد های داخل آن.
تا زمانی که شرط (condition) برقرار باشه کد های داخل بدنه ی حلقه اجرا و تکرار میشه.
مثال
مثال زیر اعداد یک تا صد رو نمایش میده
for(int i=1; i<= 100; i++){
System.out.print(i + " ");
}
در مثال بالا شرط حلقه ی ما کوچکتر بودن i یا مساوی بودنش با 100 است و تا زمانی که این شرط برقرار باشه حلقه به تکرار ادامه میده.
مثال:
مثال زیر مجموع اعداد صفر تا صد رو نمایش میده.
int sum = 0;
for (int i=1; i<= 100; i++){
sum += i;
}
System.out.println("Sum of 0 to 100 is " + sum);
در مثال بالا نیز مانند قبل همین موضوع وجود داره با این تفاوت نحوه ی اجرای کد داخل حلقه متفاوت است.
مثال
مثال زیر یک عدد رو از کاربر میگیره و فاکتوریل آن را حساب کرده و نمایش میده.
Scanner input = new Scanner(System.in);
System.out.print("Enter a number to compute factorial: ");
int fact = input.nextInt();
System.out.print(fact + "! is ");
int result = 1;
for (int i = fact; i > 0; i--) {
if (i > 1)
System.out.print(i + " * ");
else
System.out.print(i + " = ");
result *= i;
}
System.out.println(result);
حلقه ی foreach
از جاوا 8 به بعد نوع خاصی از for به وجود اومد که foreach loop یا enhanced loop نام گرفت از این حلقه برای خواندن مقادیر داخل آرایه، List، Map، و هر کلاسی که از Iterator ارث بری میکنه در جاوا استفاده میشه.
String names = {"Joe", "Billy", "James", "Maya"};
for(String n : names){
System.out.println("Name: " + n);
}
در مثال بالا حلقه پس از هربار تکرار یک مقدار از ارایه رو میگیره و در متغیر n ذخیره میکنه و از n داخل بدنه ی حلقه در دسترسه.
کلید واژه ی break و continue
این کلید واژه ها داخل بدنه ی حلقه مورد استفاده قرار میگیرن
کلید واژه ی break
برای شکستن حلقه و جلو گیری از ادامه ی تکرار استفاده میشه
کلید واژه ی continue
برای جلو گیری از اجرای بقیه کد ها در بدنه ی حلقه استفاده میشه
حلقه ی while
حلقه ی while در جاوا داری دو بخشه:
۱- بررسی شرط (condition) برای تکرار حلقه
۲- بدنه ی حلقه و اجرای کد های داخل آن پس از برقرار بودن شرط در هر تکرار
تا زمانی که شرط (condition) برقرار باشه کد های داخل بدنه اجرا و تکرار میشه.
مثال
در مثال زیر برنامه یک عدد بین 0 تا 10 به صورت تصادفی ایجاد میکنه و کاربر باید عدد رو حدس بزنه. در این مثال از کلید واژه ی break استفاده شده.
Scanner input = new Scanner(System.in);
int num = (int)(Math.random() * 10);
int answer = -1;
System.out.println("Guess the number generated by random:");
while (answer != num){
answer = input.nextInt();
if (answer == num){
break;
}else if (answer> num){
System.out.println("Your answer " + answer + " is too high guess again");
}else{
System.out.println("Your answer " + answer + " is too low guess again");
}
}
System.out.println("Congratulations! you guessed correct");
در داخل حلقه به بررسی جواب میپردازیم اگر جواب برابر با عدد ساخته شده بود تکرار رو متوقف میکنه و از حلقه خارج میشه. اگه جواب بزرگتر از عدد ساخته شده بود پیغام بزرگ بودن عدد حدس زده شده رو نمایش میده و کاربر دوباره باید پاسخ بده. اگه جواب کوچیکتر بود پیغام کوچیکتر بودن مقدار رو نمایش میده و کاربر باید دوباره پاسخ بده تا زمانی که پاسخ کاربر برابر با عدد ساخته شده باشه.
حلقه ی do-while
این حلقه مثل while است با این تفاوت که ابتدا کد های داخل بدنه ی حلقه اجرا میشن بعد حلقه شرط رو بررسی میکنه
مثال
در برنامه ی زیر کاربر عدد رو وارد میکنه و پس وارد کردن همه ی اعداد دلخواه با صفر از حلقه خارج شده و برنامه مجموع اعداد وارد شده رو نمایش میده
int data;
int sum = 0;
Scanner input = new Scanner(System.in);
do {
System.out.print("Enter a data (the input ends with 0): ");
data = input.nextInt();
sum += data;
}while (data != 0);
System.out.println("The sum is " + sum);
خلاصه
- برای تکرار یک عمل از حلقه استفاده میکنیم.
- در جاوا سه نوع کلی حلقه داریم for ، while و do-while
- وجود شرط برای هر سه حلقه ضروریه
- کلید واژه های break و continue برای شکستن حلقه و صرف نظر کردن از بقیه ی کدهای داخل حلقه
- در do-while ابتدا کد های داخل بدنه اجرا میشه بعد حلقه تکرار میشه