logo search
matlab_final

3.6. Операторы break / continue

В теле циклов for и while можно использовать такие управляющие конструкции, как break и continue.

Оператор break прерывает выполнение цикла.

Оператор continue прерывает выполнение текущей итерации цикла и указывает интерпретатору перейти к следующей итерации.

Перепишем пример из предыдущего размера таким образом, чтобы в нем использовались операторы break и continue.

% Демонстрация операторов break и continue

clear

% "Бесконечный" цикл, который будет прерываться с помощью оператора break

while 1

% Просим пользователя ввести число

user_input = input ('Введите число или нажмите Enter для выхода: ', ...

's');

% Если пользователь ввел пустую строку, завершаем цикл

if isempty (user_input)

break

end

% Преобразовываем строку, введенную пользователем, в число

number = str2double (user_input);

% Если пользователь ввел число с ошибкой, проигнорируем ввод

if isnan(number)

continue

end

% Выведем квадрат этого числа

result_str = sprintf ('Квадрат введенного числа равен %f\n', ...

number ^ 2);

disp (result_str);

end

Результат выполнения этого скрипта может выглядеть следующим образом:

Введите число или нажмите Enter для выхода: 4

Квадрат введенного числа равен 16.000000

Введите число или нажмите Enter для выхода: 2.5

Квадрат введенного числа равен 6.250000

Введите число или нажмите Enter для выхода: абырвалг

Введите число или нажмите Enter для выхода: 16

Квадрат введенного числа равен 256.000000

Введите число или нажмите Enter для выхода:

>>

В этом примере используется прием, который называется «бесконечный цикл». Дело в том, что условие оператора while всегда истинно (не равно 0), поэтому, если этот цикл не прервать изнутри оператором break, то он никогда не завершится. Такой прием нужно использовать с осторожностью, так как в данном случае из объявления цикла не видно, при каких условиях он выполняется, и для понимания этого нужно прочитать все тело цикла.

Аналогично операторы break и continue работают внутри оператора for.