English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم عن جمل continue في Java باستخدام الأمثلة.
عند معالجة الدورات، قد تحتاج إلى تخطي بعض الجمل في الدورة أو التوقف عن الدورة فجأة دون التحقق من تعبير التحقق.
في هذه الحالة، سيتم استخدام جمل break وcontinue. للحصول على معلومات حول جمل break، يرجى زيارةJava break.
تقوم جملة continue في Java بتخطي تكرار الدورة الحالية (for، while، do…while، إلخ) وتنقل السيطرة إلى نهاية الدورة وتحسب تعبير التحقق من الدورة.
لدورة for، يتم تنفيذ جملة التحديث قبل جملة التحقق من التعبير.
تستخدم جملة continue غالبًا في (جملة if ... elseاستخدمت في جملة القرار. لغتها هي:
continue;
class Test { public static void main(String[] args) { // دورة for for (int i = 1; i <= 10; ++i) { // إذا كانت قيمة i بين 4 و9، يتم تنفيذ جملة continue if (i > 4 && i < 9) { continue; } System.out.println(i); } } }
Output:
1 2 3 4 9 10
في البرنامج السابق، استخدمنا دورة for لطباعة قيمة i في كل تكرار. للحصول على فهم أفضل لعملية دورة for، يرجى زيارةدائرة التكرار for Javaفي هذا السياق، يرجى الانتباه إلى الجمل التالية:
if (i > 5 && i < 9) { continue; }
هذا يعني أنه عند قيمة i أكبر من 4 وأقل من 9، سيتم تجاوز جملة print في الدورة. لذلك، سنقوم بتخطي إخراج القيم 5، 6، 7 و8.
يحسب البرنامج التالي مجموع الخمس أرقام الإيجابية المدخلة من المستخدم. إذا أدخل المستخدم عدد سالب أو صفر، يتم تجاوزه في الحساب.
لإعداد استقبال المدخلات من المستخدم، استخدمنا كائن Scanner. للحصول على معلومات إضافية حول Scanner، يرجى زيارةJava Scanner.
import java.util.Scanner; class AssignmentOperator { public static void main(String[] args) { Double number, sum = 0.0; // إنشاء كائن Scanner Scanner input = new Scanner(System.in); لـ(int i = 1; i < 6; ++i) { System.out.print("أدخل عدد: "); // استقبال إدخال بيانات من نوع double number = input.nextDouble(); // إذا كان number سالباً، فتخطي التكرار if (number <= 0.0) { continue; } sum += number; } System.out.println("Sum = " + sum); } }
Output:
أدخل عدد: 2.2 أدخل عدد: 5.6 أدخل عدد: 0 أدخل عدد: -2.4 أدخل عدد: -3 Sum = 7.8
في البرنامج المذكور أعلاه، لاحظ الآتي:
if (number < 0.0) { continue; }
هذا يعني أنه عند إدخال عدد سالب، سيقوم بتجاوز تكرار الدورة الحالية. يبدأ التكرار التالي.
إذا كانالدورات المدمجة، حيث سيقوم continue بتخطي تكرار الدورة الداخلية الحالية.
حتى الآن، لقد استخدمنا جملة continue غير المختومة. تستخدم لإنهاء الدورة الداخلية والأمر switch. ومع ذلك، هناك نوع آخر من جملة continue في Java، يُدعى continue المختوم.
كما هو موضح في الشكل، نستخدم معرف label لتحديد الدورة الخارجية. الآن، لاحظ كيفية استخدام جملة continue هذه (continue label;).
في هذا السياق، ستجتاز جملة continue تكرار العلامة الحالية (أي الدورة الخارجية). ثم، ينتقل التحكم في البرنامج إلى تكرار العلامة التالية (الدورة الخارجية)
class LabeledContinue { public static void main(String[] args) { // علامة الدائرة الخارجية للدورات first: لـ(int i = 1; i < 6; ++i) { لـ(int j = 1; j < 5; ++j) { if (i == 3 || j == 2) //Skip the iteration of the label (outer for loop) continue first; System.out.println("i = " + i + "; j = " + j); } } } }
Output:
i = 1; j = 1 i = 2; j = 1 i = 4; j = 1 i = 5; j = 1
In the above example, the current iteration of the loop marked as first is skipped using the labeled continue statement.
if (i==3 || j==2) continue first;
In this case, we can see that the outermost for loop is marked as first,
first: for (int i = 1; i < 6; ++i) {..}
Therefore, if the value of i is 3 or the value of j is 2, skip the iteration of the outer for loop.
Noteعادةً لا يُنصح باستخدام continue المزود بالعلامة، لأن ذلك يجعل الكود صعب الفهم. إذا كنت بحاجة إلى استخدام continue المزود بالعلامة، فحاول إعادة هيكلة الكود ومحاولة حل المشكلة بطريقة أخرى لجعلها أكثر قراءة.