JavaRush /مدونة جافا /Random-AR /بيان كسر في جافا
iloveski
مستوى
Москва

بيان كسر في جافا

نشرت في المجموعة
مرحبا بجميع الزملاء والمهتمين فقط.
بيان الاستراحة في جافا - 1
سننظر اليوم إلى إحدى ميزات لغة برمجة Java مثل عامل التوقف. هذه هي المقالة الأولى حول موضوع عوامل النقل، لذا إذا أعجبتك، سأكون سعيدًا بكتابة المزيد. أود أن أشير على الفور إلى أن هذه المقالة مخصصة في المقام الأول للمطورين المبتدئين، وقد لا يجد الطلاب الأكثر تقدمًا أي شيء جديد لأنفسهم هنا. إذا هيا بنا. في Java، هناك طريقتان لتغيير الترتيب الذي يتم به تنفيذ تعليمات البرنامج: عبارات القفز وآلية معالجة الاستثناءات. هناك ثلاثة عوامل تشغيل للقفز في Java: Break وContinue وReturn. اليوم أدعوك لإلقاء نظرة فاحصة على المشغل break. تعد معالجة الاستثناءات موضوعًا واسعًا لدرجة أنه خارج نطاق هذه المقالة. هناك ثلاث طرق لاستخدام عبارة Break في Java. الطريقة الأولى والأكثر شيوعًا هي استخدامها breakللخروج من الحلقة مبكرًا، على سبيل المثال:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for (int i = 0; i < 10; i++) {
            if (i == number) {
                break;
            }
            System.out.println(i);
        }
        System.out.println("cycle was finished");
    }
}
سيعرض هذا المثال:
1
2
cycle was finished
وهذا يعني أنه عندما يصبح عداد الحلقة iمساويًا للمعامل الذي تم تمريره number، أي الرقم 3، يتم إنهاء تنفيذ الحلقة مبكرًا. إذا كان البرنامج يحتوي على عدة حلقات متداخلة، فقم بفصل المخرجات من الحلقة الأعمق فقط، على سبيل المثال:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for(int i = 0; i < 5; i++) {
            for (int j =0; j < 10; j++) {
                if(j == number) {
                    break;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("cycles was finished");
    }
}
هذا المثال ينتج الإخراج:
012
012
012
012
012
cycles was finished
كما يتبين من المثال، تتم مقاطعة الحلقة الداخلية في كل مرة عند الرقم 3 (المعلمة number)، ويتم تنفيذ الحلقة الخارجية 5 مرات، على النحو المنشود. في لغة جافا، يمكنك استخدام أكثر من بيان فاصل داخل الحلقة، لكن هذا غير مستحسن، حيث أن قابلية قراءة التعليمات البرمجية وبنيتها تتدهور بشكل كبير. الاستخدام الثاني breakهو استخدامه لمقاطعة تنفيذ التعليمات في الفروع switch، على سبيل المثال:
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }

    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
                break;
            case 2:
                System.out.println(number*number);
                break;
            case 3:
                System.out.println(number*number);
                break;
        }
        System.out.println("after switch");
    }
}
سيؤدي تشغيل هذا المثال إلى إنتاج الإخراج:
4
after switch
قامت عبارة Break بتمرير التحكم إلى الكود الذي يتبع الكتلة بأكملها switch. إذا لم تحدد breakفي switchهذا المثال:
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }
    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
            case 2:
                System.out.println(number*number);
            case 3:
                System.out.println(number*number);
        }
        System.out.println("after switch");
    }
}
لن يكون الإخراج كما هو متوقع:
4
4
after switch
حدث هذا لأنه بعد تنفيذ الكتلة، case 2استمر البرنامج في تنفيذ جميع كتل الحالات اللاحقة ، مما أعطانا الإخراج المقابل. في بعض الأحيان قد تكون هذه الميزة للمشغل switch مفيدة لنا، على سبيل المثال:
public class SimpleExample {
    public static void main(String[] args) {
        compare(2);
        compare(7);
        compare(12);
    }
    public static void compare(int number){
        switch (number){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("number is less than 5 or equal 5");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
                System.out.println("number is greater than 5");
                break;
            default:
                System.out.println("number is less than 0 or greater than 9");
        }
        System.out.println("after switch");
    }
}
يقوم هذا البرنامج بمقارنة رقم معين بالرقم 5 ويعطي النتيجة التالية:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
عندما يتم استدعاء الطريقة لأول مرة، يقوم المشغل switchبنقل التحكم إلى المشغل case 2ثم إلى المشغل breakفي case 5. الاستدعاء الثاني مشابه للأول، لكنه يبدأ بـ c case 7. الاستدعاء الثالث لا يجد قيمة مناسبة بين جميع الحالات، لذلك يتم تنفيذ العامل default. الطريقة الثالثة هي استخدام عامل التشغيل breakبدلاً من gotoعامل التشغيل C. للقيام بذلك، سنستخدم نموذجًا خاصًا للعامل breakيسمى breakمع تسمية. يشبه هذا النموذج break метка;تسمية - وهذا عادة ما يكون أي اسم مناسب من مساحة اسم Java، يسبق كتلة التعليمات البرمجية. علاوة على ذلك، بعد تطبيق هذه الكتلة من التعليمات البرمجية breakمع التسمية، سيستمر تنفيذ التعليمات البرمجية من المكان بعد الكتلة مع التسمية المقابلة، على سبيل المثال:
public class SimpleExample {
    public static void main(String[] args) {
        howWeUseLabels(true);
        System.out.println();
        howWeUseLabels(false);
    }
    public static void howWeUseLabels(boolean bool) {
        firstBlock:{
            secondBlock:{
                thirdBlock:{
                    System.out.println("We will see it always");
                    if(bool) {
                        break secondBlock;
                    }
                    System.out.println("We won't see it if bool == true");
                }
                System.out.println("We won't see it if bool == true");
            }
            System.out.println("We will see it always");
        }
    }
}
هذا المثال سوف ينتج المخرجات التالية:
We will see it always
We will see it always

We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
بعد استدعاء الطريقة الأولى، يقوم المشغل breakبنقل التحكم إلى نهاية الكتلة secondBlock، والخروج secondBlockو thirdBlock، أثناء تنفيذ عامل آخر println()في النهاية firstBlock. بعد المكالمة الثانية، يتم عرض جميع الخطوط على الشاشة. يمكن أيضًا استخدام الملصقات للإشارة إلى الدورات. يجب أن نتذكر أنه لا يمكنك الانتقال إلى الملصق إلا من داخل مجموعة التعليمات البرمجية المشار إليها بواسطة الملصق؛ على سبيل المثال، لن يتم تجميع هذا الرمز:
public class SimpleExample {
    public static void main(String[] args) {
        label:{
            System.out.println("inside label");
        }
        if(true) {
            break label;
        }
        System.out.println("This is error");
    }
}
ملاحظات حول نظافة الكود والبيان break: هناك نصيحة مقبولة بشكل عام لاستخدام العبارة breakبحذر شديد، نظرًا لأن الاستخدام breakيجعل فهم الحلقة أكثر صعوبة ويجبر المبرمج على النظر داخل الحلقة لفهم الفروق الدقيقة في عملها. هناك قاعدة إرشادية break يمكنك استخدامها بثقة أكبر في الحلقات الأقصر وبحذر أكبر في الحلقات الطويلة والمتداخلة بعمق، لأن هذا يزيد من احتمالية حدوث الأخطاء ويعقد قراءة وفهم التعليمات البرمجية الخاصة بك من قبل المبرمجين الآخرين. كما كتبت أعلاه، يشير استخدام عدد كبير من الرموز breakالمنتشرة في جميع أنحاء الكود إلى أن المبرمج لا يفهم تمامًا سبب كتابة الكود الخاص به بهذه الطريقة. قد يكون من المفيد التفكير في إعادة هيكلة مثل هذه الحلقة عن طريق تقسيمها إلى عدة حلقات أصغر. حاول توخي الحذر عند استخدام break الملصق كبديل goto، حيث يؤدي ذلك إلى تعقيد بنية التعليمات البرمجية. هذا كل ما أردت أن أخبركم به اليوم عن عامل التشغيل breakفي Java. سأكون سعيدًا بالنقد البناء، وأنا أيضًا على استعداد لكتابة تكملة حول المشغلين continueو return، إذا كنت مهتمًا.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION