Оператор break в Java - Вопросы

Всего: 5 вопросов

1. 

Что такое операторы перехода в Java и какие они бывают?

Операторы перехода передают управление в другую часть программы. В Java нет оператора goto, но есть три оператора перехода: break (досрочно завершает цикл или switch), continue (пропускает оставшуюся часть текущей итерации цикла) и return (завершает выполнение всего метода и возвращает управление вызывающему коду).

2. 

Что делает оператор break без метки и где его допустимо использовать?

Оператор break без метки досрочно завершает цикл (while, for) либо прерывает последовательность операторов в switch. Использовать его можно только внутри цикла или оператора switch — в любом другом месте компилятор выдаст ошибку break outside switch or loop. Применять break как обычное средство выхода из цикла не стоит: для этого есть условие самого цикла, break уместен лишь в особых случаях.

3. 

Как ведёт себя break во вложенных циклах и чем от него отличается break с меткой?

Обычный break осуществляет выход только из самого внутреннего цикла — внешние циклы продолжают работать. break с меткой (break outer;) позволяет выйти сразу из внешнего помеченного цикла, то есть из нескольких вложенных циклов одновременно. Это основной сценарий применения break с меткой.

4. 

Что такое метка в Java и как выглядит синтаксис оператора break с меткой?

Метка — это любой допустимый в Java идентификатор с двоеточием, который помещается в начале блока кода или цикла и обозначает его. Общая форма оператора: break метка;. Например:

outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 100; j++) {
        if (j == 10) {
            break outer; // выход из обоих циклов
        }
    }
}

Важное ограничение: метка должна стоять непосредственно перед тем блоком или циклом, из которого выполняется выход. «Прыгнуть» в произвольное место программы, как настоящий goto, break с меткой не может.

5. 

Что произойдёт, если оператор switch находится внутри цикла и в одной из веток case вызвать break?

Обычный break внутри switch, вложенного в цикл, завершает только сам switch, а не цикл — цикл продолжит выполнение со следующей итерации. Чтобы из ветки case выйти сразу из цикла, нужно использовать break с меткой, указывающей на цикл. На этом часто ошибаются на собеседованиях.

Страница 1 из 1