توجد حلقة while في كل لغة برمجة تقريبًا، وجافا ليست استثناءً. تنفذ حلقة while في Java واللغات الأخرى عبارة أو مجموعة من العبارات طالما أن قيمة الشرط الذي أدى إلى تشغيلها صحيحة. في هذه المقالة، سنتحدث عن كيفية العمل مع حلقة while .
ما هي الدورات ل؟
كانت برامجك الأولى عبارة عن سلسلة من التعليمات التي تم تنفيذها خطوة بخطوة واحدة تلو الأخرى. بدون شوكات وتكرارات. بدأنا لاحقًا باستخدام الفروع بمساعدة العوامل الشرطية. حسنًا، من أجل تنفيذ إجراءات متكررة، هناك دورات. ربما تكون الدورات إحدى الفوائد الأكثر وضوحًا للمبرمجين المبتدئين التي توفرها أتمتة العمليات. تخيل أنك بحاجة إلى كتابة برنامج تعقب يحسب عدد الخطوات التي تم اتخاذها في اليوم الواحد. وعندما تجتاز، على سبيل المثال، 10000 خطوة، يجب أن يرسل لك البرنامج إشعارًا بالهدف الذي تم تحقيقه. يمكن التعبير عن مهمة إصدار الإشعار بالكلمات (أو الكود الكاذب) على النحو التالي:
While (number of steps less than 10,000)
{
Count steps
}
Send notification "you have reached the goal"
أي أنه بمجرد أن يصبح عدد الخطوات مساوياً لما هو محدد في الشرط، يخرج البرنامج من هذه الدورة ويرسل إشعارًا. أو مثال آخر. تخيل أنك بحاجة إلى حفظ قصيدة (أو خطاب). تعتبر القصيدة محفوظة إذا تمكنت من قراءتها ثلاث مرات متتالية دون إلقاء نظرة خاطفة عليها. إذا تخيلت برنامجًا يلتقط محاولاتك لتلاوة قصيدة، فسيتعين عليه أيضًا استخدام حلقة:
While (success < 3)
learn a poem
وتستخدم تركيبات مماثلة في جميع التطبيقات التعليمية الحديثة التي تستخدم، على سبيل المثال، في تعلم اللغات أو العزف على الآلات الموسيقية.
بينما الحلقة وهيكلها
لحل المشكلات مثل الأمثلة المذكورة أعلاه، وبشكل أعم، لأتمتة الإجراءات المتكررة في Java، يمكنك استخدام حلقة while . ستعمل Java while Loop بشكل جيد في حالتنا. يرتب هذا التصميم إجراءات متعددة في بنية موجزة ومفهومة. تم العثور على عبارة while Loop في جميع لغات البرمجة تقريبًا . يقوم بتكرار عبارة أو مجموعة من العبارات طالما أن قيمة تعبير التحكم الخاص بها صحيحة. شكل الحلقة while هو كما يلي:
while(condition == true) {
// statement or loop body
}
يجب أن يكون الشرط تعبيرًا منطقيًا، أي يمكن القول بأنه صحيح أو خطأ. فيما يلي بعض الأمثلة على التعبيرات المنطقية:
s != "exit";
a > 5;
true;
سيتم تنفيذ نص الحلقة طالما أن التعبير الشرطي صحيح. عندما يصبح الشرط خاطئًا، يتم نقل التحكم إلى سطر التعليمات البرمجية الذي يأتي بعد الحلقة. إذا تم استخدام عبارة واحدة فقط في الحلقة، فيمكن حذف الأقواس المتعرجة (ولكن من الأفضل عدم القيام بذلك). يتم تقييم التعبير المنطقي قبل بداية الحلقة ، ثم في كل مرة قبل تنفيذ التكرار التالي للبيان.
أثناء أمثلة الحلقة
لنكتب برنامجًا لجمع كل الأرقام من 1 إلى 10 باستخدام حلقة while :
public class WhileTest0 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
//while loop
while (i < 11) {
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
الإخراج هو:
55
نحتاج إلى حساب مجموع كل الأعداد من 1 (أو من الصفر، لا يهم) إلى 10. نجعل المجموع الأولي والعنصر الأول يساوي الصفر، وسنزيد العنصر بمقدار واحد مع كل تمريرة الحلقة. سنستمر في الجمع حتى تصبح الوسيطة 10 (أي أقل من 11). وبالمثل، يمكننا كتابة الشرط i <= 10 ). لنأخذ مثالًا آخر لـ Java while Loop. سنقوم بكتابة برنامج حيث يقوم المستخدمون بإدخال الأعداد الصحيحة الموجبة. إذا أدخلوا صفرًا أو رقمًا سالبًا، فيجب على البرنامج الإبلاغ عن ذلك وإنهاء المهمة.
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
int positiveNumber = 1;
Scanner scanner = new Scanner(String.valueOf(positiveNumber));
while (positiveNumber > 0) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter positive number:");
positiveNumber = sc.nextInt();
System.out.println("ok, next");
}
System.out.println("The number should be positive");
}
}
يمكنك تحسين البرنامج والإضافة إليه، على سبيل المثال، التحقق مما إذا كان المستخدم قد أدخل رقمًا بالضبط وليس حرفًا آخر، أو أن الرقم هو عدد صحيح.
افعل بينما حلقة
تقوم حلقة while الكلاسيكية ، كما في الأمثلة أعلاه، بالتحقق فورًا لمعرفة ما إذا كان الشرط صحيحًا. ولذلك، يمكن أن يسمى دورة مع شرط مسبق. حلقة while لها شقيق do-while، وهي حلقة ذات شرط لاحق. أي أنه قبل حدوث اختبار صحة الشرط، سيتم تنفيذ هذه الحلقة مرة واحدة على الأقل:
do {
// Loop body - periodically executed statement(s)
}while(Boolean expression);
لذلك، فإن المثال الأول مع مثل هذه الحلقة سيبدو كما يلي:
public class WhileTest0 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do
{
sum = sum + i;
i++;
} while (i < 11);
System.out.println(sum);
}
}
دورة لا نهاية لها
يمكن استخدام حلقة while لتنظيم حلقات لا نهائية في النموذج while(true) : على سبيل المثال، إليك برنامج يطبع سلسلة من الأعداد الصحيحة بلا نهاية (مع بعض الفروق الدقيقة):
public class EndlessLoop {
public static void main(String[] args) {
int i = 0;
while (true) {
System.out.println(i++);
}
}
}
لتعزيز ما تعلمته، نقترح عليك مشاهدة درس فيديو من دورة Java الخاصة بنا
GO TO FULL VERSION