English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستعلم جملة break، التي يتم تسميتها break statement في جافا.
عند استخدام الدورات، في بعض الأحيان قد نرغب في تجاوز بعض الجمل في الدورة أو إنهاء الدورة على الفور دون فحص تعبير التحقق.
في هذه الحالة، سيتم استخدام جمل break وcontinue. ستعلمها في الفصل التاليجملة continue.
جملة break في جافا تنهي الدورة على الفور، وتنقل السيطرة إلى الجملة التالية للدورة.
استخدام break statement تقريبًا دائمًا مع جمل القرار (جافا if ... else statement) معًا.
هذا هو بناء جملة break في جافا:
break;
class Test { public static void main(String[] args) {}} //دورة for for (int i = 1; i <= 10; ++i) { //إذا كانت قيمة i تساوي 5، فإن الدورة تنتهي if (i == 5) { break; } System.out.println(i); } } }
Output:
1 2 3 4
في البرنامج أعلاه، استخدمنا دورة for لطباعة قيمة i في كل تكرار. للحصول على فهم أفضل لعملية دورة for، يرجى زيارةJava for loop. يرجى ملاحظة الجمل التالية:
if (i == 5) { break; }
هذا يعني أن قيمة i تساوي 5، فإن الدورة تنتهي. لذلك، نحصل على القيم الأقل من 5.
هذا البرنامج يحسب مجموع الأرقام المدخلة من المستخدم حتى يتم إدخال عدد سالب.
لإستقبال المدخلات من المستخدم، استخدمنا هذا كائن Scanner. للحصول على معلومات إضافية حول Scanner، يرجى زيارةJava Scanner.
import java.util.Scanner; class UserInputSum { public static void main(String[] args) {}} Double number, مجموع = 0.0; //إنشاء كائن Scanner Scanner input = new Scanner(System.in); while (true) { System.out.print("أدخل عدد: "); //استقبال المدخلات المزدوجة للمستخدم عدد = input.nextDouble(); //إذا كان number سالبًا، تنهي الدورة if (number < 0.0) { break; } sum += number; } System.out.println("جمع = " + sum); } }
Output:
أدخل عدد: 3.2 أدخل عدد: 5 أدخل عدد: 2.3 أدخل عدد: 0 أدخل عدد: -4.5 الجمع = 10.5
في البرنامج المذكور أعلاه، يكون تعبير اختبار الدورة while دائمًا صحيحًا. انتبه إلى هذا السطر،
if (number < 0.0) { break; }
هذا يعني أن الدورة while تنهي عند إدخال المستخدم عدد سالب.
للمالدورات المدمجة، تنهي جملة break الدورة الداخلية الأكثر
في هذا السياق، تنهي جملة break الدورة الداخلية الأكثر وسيطرة البرنامج تنقذ إلى الدورة الخارجية.
حتى الآن، لقد استخدمنا جملة break غير الموسومة. إنها تنهي الدورة الأكثر داخليًا وجملة switch. ولكن، هناك نوع آخر من جملة break في Java يُدعى break الموسوم.
يمكننا أيضًا استخدام جملة break الموسومة لإنهاء الدورة الخارجية الأكثر.
كما هو موضح في الشكل أعلاه، نستخدم ميزة label لتعيين الدورة الخارجية. الان، لاحظ كيف نستخدم جملة break هذه (break label;).
في هذا السياق، تنهي جملة break الجملة الموسومة (أي الدورة الخارجية). ثم، يقفز البرنامج إلى الجملة التالية بعد الجملة الموسومة.
هذا مثال آخر:
while (testExpression) { // الكود second: while (testExpression) { // الكود while(testExpression) { // الكود break second; } } //السيطرة تنتقل إلى هنا }
في المثال السابق، عند تنفيذ جملة break second; بعد التنفيذ، يتم إنهاء الدورة الموسومة Second. كما يتم نقل سيطرة البرنامج بعد الدورة second إلى هذه الجملة.
class LabeledBreak { public static void main(String[] args) {}} // for loop marked as first first: for( int i = 1; i < 5; i++) { // for loop marked as second second: for(int j = 1; j < 3; j++) { System.out.println("i = " + i + "; j = " + j); //جملة break تنهي الدورة الأولى if ( i == 2 ) break first; } } } }
Output:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
في المثال السابق، استخدمت جملة break labeled break لتوقف الدورة الموسومة first. هذا هو،
first: for(int i = 1; i < 5; i++) {...}
في هذا السياق، إذا قمنا بتغيير break first; إلى break second;سيتغير سلوك البرنامج. في هذه الحالة، سيتم إنهاء الدورة الموسومة second. على سبيل المثال،
class LabeledBreak { public static void main(String[] args) {}} // for loop marked as first first: for( int i = 1; i < 5; i++) { // for loop marked as second second: for(int j = 1; j < 3; j++) { System.out.println("i = " + i + "; j = " + j); // break statement terminates the loop marked as second if ( i == 2 ) break second; } } } }
Output:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
Note: break statement is also used to terminate the case in the switch statement. For more information, please visitجملة switch Java.