В този урок ще научите за изявлението за прекъсване, обозначено като прекъсване в Java с помощта на примери.
Докато работите с цикли, понякога е желателно да пропуснете някои изрази вътре в цикъла или да прекратите цикъла веднага, без да проверявате тестовия израз.
В такива случаи се използват break
и continue
изявления. За инструкцията за продължаване на Java ще научите в следващия урок.
Операторът break
в Java прекратява цикъла незабавно и контролът на програмата се премества към следващия оператор, следващ цикъла.
Почти винаги се използва с изявления за вземане на решения (Java if … else Statement).
Ето синтаксиса на оператора break в Java:
break;
Как работи изявлението break?
![](https://cdn.wiki-base.com/2119107/java_break_statement_with_examples.jpg.webp)
Пример 1: Изявление за прекъсване на Java
class Test ( public static void main(String() args) ( // for loop for (int i = 1; i <= 10; ++i) ( // if the value of i is 5 the loop terminates if (i == 5) ( break; ) System.out.println(i); ) ) )
Изход :
1 2 3 4
В горната програма използваме for
цикъла, за да отпечатаме стойността на i във всяка итерация. За да разберете как for
работи цикълът, посетете Java for loop. Тук забележете изявлението,
if (i == 5) ( break; )
Това означава, че когато стойността на i е равна на 5, цикълът се прекратява. Следователно получаваме изхода само със стойности, по-малки от 5.
Пример 2: Изявление за прекъсване на Java
Програмата по-долу изчислява сумата от числа, въведени от потребителя, докато потребителят въведе отрицателно число.
За да вземем данни от потребителя, ние използвахме Scanner
обекта. За да научите повече за Scanner
, посетете Java Scanner.
import java.util.Scanner; class UserInputSum ( public static void main(String() args) ( Double number, sum = 0.0; // create an object of Scanner Scanner input = new Scanner(System.in); while (true) ( System.out.print("Enter a number: "); // takes double input from user number = input.nextDouble(); // if number is negative the loop terminates if (number < 0.0) ( break; ) sum += number; ) System.out.println("Sum = " + sum); ) )
Изход :
Въведете число: 3.2 Въведете число: 5 Въведете число: 2.3 Въведете число: 0 Въведете число: -4.5 Сума = 10.5
В горната програма тестовият израз на while
цикъла е винаги true
. Тук, забележете линията,
if (number < 0.0) ( break; )
Това означава, че когато потребителят въведе отрицателни числа, цикълът while се прекратява.
Прекъсване на Java и вложен цикъл
В случай на вложени цикли break
изразът прекратява най-вътрешния цикъл.
![](https://cdn.wiki-base.com/2119107/java_break_statement_with_examples_2.jpg.webp)
Тук операторът break прекратява най-вътрешния while
цикъл и контролът преминава към външния цикъл.
Декларация с етикет за прекъсване
Досега използвахме неозначеният оператор за прекъсване. Той прекратява най-вътрешната инструкция за цикъл и превключване. Има обаче друга форма на израз на break в Java, известна като етикетирана break.
Можем да използваме означенията break за да прекратим и най-външния цикъл.
![](https://cdn.wiki-base.com/2119107/java_break_statement_with_examples_3.jpg.webp)
Както можете да видите на горното изображение, ние използвахме идентификатора на етикета, за да определим външния цикъл. Сега забележете как break
се използва изявлението ( break label;
).
Тук break
операторът завършва етикетирания оператор (т.е. външен цикъл). След това контролата на програмата преминава към изявлението след обозначеното изявление.
Ето още един пример:
while (testExpression) ( // codes second: while (testExpression) ( // codes while(testExpression) ( // codes break second; ) ) // control jumps here )
В горния пример, когато операторът break second;
се изпълнява, while
цикълът, обозначен като втори, се прекратява. И контролата на програмата се премества в оператора след втория while
цикъл.
Пример 3: Обозначено изявление за прекъсване
class LabeledBreak ( public static void main(String() args) ( // the for loop is labeled as first first: for( int i = 1; i < 5; i++) ( // the for loop is labeled as second second: for(int j = 1; j < 3; j ++ ) ( System.out.println("i = " + i + "; j = " +j); // the break statement breaks the first for loop if ( i == 2) break first; ) ) ) )
Изход :
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
В горния пример labeled break
изразът се използва за прекратяване на цикъла, означен като първи. Това е,
first: for(int i = 1; i < 5; i++) (… )
Тук, ако променим изявлението break first;
на break second;
програмата ще се държат по различен начин. В този случай for
цикълът, означен като втори, ще бъде прекратен. Например,
class LabeledBreak ( public static void main(String() args) ( // the for loop is labeled as first first: for( int i = 1; i < 5; i++) ( // the for loop is labeled as second second: for(int j = 1; j < 3; j ++ ) ( System.out.println("i = " + i + "; j = " +j); // the break statement terminates the loop labeled as second if ( i == 2) break second; ) ) ) )
Изход :
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
Забележка : break
Изявлението се използва и за прекратяване на случаи в него switch
. За да научите повече, посетете инструкцията за превключване на Java.