repeat
, until
, end_repeat
, _repeat
“повторите” цикл
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
repeatbody
untilcondition
end_repeat _repeat(body
,condition
)
repeat - end_repeat
цикл, который оценивает его тело, пока заданному критерию остановки не удовлетворяют.
В repeat
цикл, первый body
и затем condition
оценены до condition
оценивает к TRUE
.
В отличие от while
цикл, тело repeat
цикл всегда оценивается, по крайней мере, однажды.
Тело может состоять из любого количества операторов, которые должны быть разделены любой двоеточием :
или точка с запятой ;
. Только последний оцененный результат в теле (возвращаемое значение цикла) распечатан на экране. Используйте print
видеть промежуточные результаты.
Булево выражение condition
должно быть приводимо к любому TRUE
или FALSE
. Внутренне, условие оценено в контексте отложенных вычислений функций _lazy_and
и _lazy_or
.
Операторы next
и break
может использоваться в repeat
циклы таким же образом как в for
циклы.
Ключевое слово end_repeat
может быть заменен ключевым словом end
.
Обязательная форма repeat - end_repeat
эквивалентно соответствующему вызову функционального _repeat
. В большинстве случаев обязательная форма приводит к более простому коду.
$
оператор часто является более изящным обозначением циклы for.
_repeat
функция системного ядра.
repeat
циклы не показывают промежуточные результаты операторов в цикле:
i := 1: s := 0: repeat s := s + i; i := i + 1; until i >= 3 end_repeat
Выше, только возвращаемое значение цикла отображено. Используйте print
видеть промежуточные результаты:
i := 1: s := 0: repeat print("intermediate sum" = s); s := s + i; i := i + 1; s until i >= 3 end_repeat
delete i, s:
Выразите те же операторы как repeat
цикл и как эквивалентный while
цикл. В более сложных случаях вам могут быть нужны дополнительные инициализации переменных:
i := 1: repeat print(i); i := i + 1; until i = 3 end:
i := 1: while i < 3 do print(i); i := i + 1; end:
delete i:
Булево выражение condition
должен оценить к TRUE
или FALSE
:
repeat condition := UNKNOWN; print(Condition = condition); until condition end_repeat:
Error: 'TRUE' or 'FALSE' expected. [repeat]
Чтобы избежать этой ошибки, измените останавливающийся критерий в condition <> TRUE
:
repeat condition := UNKNOWN; print(Condition = condition); until condition = UNKNOWN end_repeat:
delete condition:
Также можно создать repeat
цикл при помощи функциональной формы _repeat
:
hold(_repeat((statement1; statement2), condition))
repeat statement1; statement2 until condition end_repeat
|
Тело цикла: произвольная последовательность операторов |
|