English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

تحكم في العملية في Java

مجموعات Java Array

Java موجه إلى الأشياء (I)

Java موجه إلى الأشياء (II)

Java موجه إلى الأشياء (III)

معالجة الاستثنائات Java

قوائم Java List

Java Queue (مجموعات)

مجموعات Java Map

مجموعات Java Set

Java إدخال/إخراج (I/O)

Java Reader/Writer

مواضيع أخرى في Java

تعليمات continue Java

في هذا الدرس، ستتعلم عن جمل continue في Java باستخدام الأمثلة.

عند معالجة الدورات، قد تحتاج إلى تخطي بعض الجمل في الدورة أو التوقف عن الدورة فجأة دون التحقق من تعبير التحقق.

في هذه الحالة، سيتم استخدام جمل break وcontinue. للحصول على معلومات حول جمل break، يرجى زيارةJava break.

تقوم جملة continue في Java بتخطي تكرار الدورة الحالية (for، while، do…while، إلخ) وتنقل السيطرة إلى نهاية الدورة وتحسب تعبير التحقق من الدورة.

لدورة for، يتم تنفيذ جملة التحديث قبل جملة التحقق من التعبير.

تستخدم جملة continue غالبًا في (جملة if ... elseاستخدمت في جملة القرار. لغتها هي:

continue;

كيف تعمل جملة continue؟

رسومات عملية جملة continue في Java

مثال 1: جملة continue في Java

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.

مثال 2: جملة continue في Java

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

لإعداد استقبال المدخلات من المستخدم، استخدمنا كائن 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;
}

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

Java continue والدورات المدمجة

إذا كانالدورات المدمجة، حيث سيقوم continue بتخطي تكرار الدورة الداخلية الحالية.

عملية جملة continue في الدورات المدمجة في شكل العملية

جملة continue المختومة

 حتى الآن، لقد استخدمنا جملة continue غير المختومة. تستخدم لإنهاء الدورة الداخلية والأمر switch. ومع ذلك، هناك نوع آخر من جملة continue في Java، يُدعى continue المختوم.

عملية العلامة المختومة لـ continue في شكل العملية في Java

كما هو موضح في الشكل، نستخدم معرف label لتحديد الدورة الخارجية. الآن، لاحظ كيفية استخدام جملة continue هذه (continue label;).

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

مثال 3: جملة 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 المزود بالعلامة، فحاول إعادة هيكلة الكود ومحاولة حل المشكلة بطريقة أخرى لجعلها أكثر قراءة.