Java: Массивы

Теория: Управляющие инструкции

В циклах java доступны для использования две инструкции, влияющие на их поведение: break и continue. Их использование не является необходимым, но все же они встречаются на практике и поэтому про них нужно знать.

Break

Инструкция break производит выход из цикла (Не из метода!). Встретив ее, Java перестает выполнять текущий цикл и переходит к инструкциям, идущими сразу за циклом.

String[] values = {"one", "two", "stop", "three", "four", "five"};

for (var value : values) {
    if (value.equals("stop")) {
        break;
    }
    System.out.println(value);
}
System.out.println("after loop");

// => "one"
// => "two"
// => "after loop"

То же самое можно получить без break, используя цикл while:

String[] values = {"one", "two", "stop", "three", "four", "five"};

var i = 0;
// Нужна проверка на границу массива,
// иначе можно получить индекс выходящий за последний элемент
while (i < values.length && values[i] != "stop") {
    System.out.println(values[i]);
    i++;
}

Continue

Инструкция continue позволяет пропустить итерацию цикла. Теперь выведем на экран только слово stop:

String[] values = {"one", "two", "stop", "three", "four", "five"};

for (var value : values) {
    // В условии отрицание
    if (!value.equals("stop")) {
        continue;
    }
    System.out.println(value);
}

// => "stop"

Эту проверку проще сделать через условие вхождения:

String[] values = {"one", "two", "stop", "three", "four", "five"};

for (var value : values) {
    if (value.equals("stop")) {
        System.out.println(value);
    }
    // Ничего не делаем если это не "stop"
}

// => "stop"

Итого

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

Завершено

0 / 16