الحلقات في لغة الجافا

**الحلقات في لغة الجافا** هي عباره عن طريقة تستخدم لتكرار ما بداخلها لعدد المرات المحددة من قبل المبرمج.

## حلقة for

حلقة for تعتبر من اعم الهياكل البنائية للحلقات في جافا والتي تدعم التكرار الذي يتحكم به عداد أو قيمه متغيره باستمرار بعد كل دوره من التكرار. الصورة التاليه توضح ان الشفرة البرمجيه ستقوم بطباعة الأرقام بشكل تصاعدي من 1 وحتى 10 باستخدام هذه الشفرة.

تصغير|مثال على حلقة FOR

(++for(int i = 0; i 0; i
;(System.out.println("Counting down . . . " + i
ويمكن إعادة كتابتها كما هنا،
;int i = 10
(while (i > 0
{
;(System.out.println("Counting down . . . " + i
;--i
}

على سبيل المثال برنامج يحسب فرص الفوز في اليانصيب، يجب عليك اختيار 6 أرقام من الأرقام من 1 إلى 50 حتى تفوز، ثم هناك (50 × 49 × 48 × 47 × 46 × 45)/(1 × 2 × 3 × 4 × 5 × 6) النتائج المحتملة، لذلك فرصتك هي 1 في 15890700. حظا سعيدا!
بشكل عام، إذا اخترت k أرقام من اصل n، فهناك

نتائج ممكنه، وفيما يلي حلقه for التاليه تحسب هذه القيمة.
;int lotteryOdds = 1
(++for (int i = 1; i while loop.

 * @version 1.20 2004-02-10

 * @author Cay Horstmann

 */

	public class Retirement

	}

	(public static void main(String[] args)

	}

	// read inputs

	;(Scanner in = new Scanner(System.in)

	;("?System.out.print("How much money do you need to retire

	;()double goal = in.nextDouble

	;("?System.out.print("How much money will you contribute every year

	;()double payment = in.nextDouble

	;(":%System.out.print("Interest rate in

	;()double interestRate = in.nextDouble

	;double balance = 0

	;int years = 0

	// update account balance while goal isn't reached

	(while (balance < goal

	}

	// add this year's payment and interest

	;balance += payment

	;double interest = balance * interestRate / 100

	;balance += interest

	;++years

	{

	;(".System.out.println("You can retire in " + years + " years

	{

	{

في المثال، نحن نقوم بزايدة العداد وتحديث المبلغ المتراكم حاليا وذلك يتم في جسم الحلقة ونستمر على هذا المنوال حتى يتجاوز إجمالي المبلغ المستهدف.

}(while (balance < goal
;balance += payment
;double interest = balance * interestRate / 100
;balance += interest
;++years
;(". System.out.println(years + " years
{

(لا تعتمد على هذا البرنامج لتخطيط مستحقات التقاعد الخاص بك، لقد تركنا القليل من الجماليات مثل التضخم ومتوسط العمر الخاص بك.)
حلقة while تختبر الجملة الشرطيه عند البداية «قبل جسم الحلقة». لذلك، قد لا يتم تنفيذ العمليات البرمجية لهذه الحلقة بتاتا.
إذا كنت ترير تأكيد ان الكتلة البرمجيه ستعمل على الأقل مره واحده، سوف تحتاج إلى نقل الجملة الشرطيه للأسفل.

## حلقه do..while

هذا النوع من الحلقات ينقذ الجملة (والذي عادة ما بكون مجموعة من الجُمَل) وبعد ذلك فقط يتم اختبار الشرط. بعد ذلك يكرر الجملة ويختبر الشرط ثانيةً، وهلم جراً. الشفرة البرمجية التالية 4-3 تحسب الرصيد الجديد في حساب التقاعد الخاص بك ثم يسال إذا كنت على استعداد للتقاعد:

do

}
;balance += payment
;double interest = balance * interestRate / 100
;balance += interest
;++year
// طباعة الرصيد الحالي
. . .

// يسأل إذا كان مستعدا لأخذ واسترجاع المدخل
. . .

{
;(("while (input.equals("N

سوف يتم تكرار الحلقة طالما اجابة المستخدم"N"، (انظر الشكل).

تصغير|مثال على حلقة do-while

هذا البرنامج هو مثال جيد للحلقة المُراد تكرارها مرة واحدة على الأقل، لأن المستخدم يريد أن يعلم الرصيد قبل ان يقرر إذا كان كافي للتقاعد.

import java.util.*;

Public class Retirement2 {

public static void main(String[] args)
{
Scanner in = new Scanner (System.in);

System.out.print(“Hou much money will you contribute every year?”);

double payment = in.nextDouble();

System.out.print(“Interest rate in % : ”);

double interestRate = in.nextDouble();

double balance = 0;

int year = 0;

String input;

// سيتم تحديث الرصيد طالما المستخدم غير مستعد لاسترجاعه

do
{

//add this year's payment and interest

balance += payment;

double interest = balance * interestRate / 100;

balance += interest;

year++;

//طباعة الرصيد الحالي

System.out.printf("After year %d, your balance is %,.2f%n", year, balance);

// يسال المستخدم هل إذا كان مستعدا لأخد واسترجاع المدخل

System.out.print(“Ready to retire? (Y/N)”);

input = in.next();

}
while(input.equals('N')));

}

}

## مصادر
* Horstmann, Cay S., 1959- Core Java Volume 1 Fundamentals 8th edition - chapter 3

تصنيف:جافا (لغة برمجة)