repeat, until, end_repeat, _repeat

“повторите” цикл

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

repeat
  body
until condition 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 функция системного ядра.

Примеры

Пример 1

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:

Пример 2

Выразите те же операторы как 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:

Пример 3

Булево выражение 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:

Пример 4

Также можно создать repeat цикл при помощи функциональной формы _repeat:

hold(_repeat((statement1; statement2), condition))
repeat
  statement1;
  statement2
until condition end_repeat

Параметры

body

Тело цикла: произвольная последовательность операторов

condition

Булево выражение

Возвращаемые значения

Значение последней команды, выполняемой в теле цикла. Если никакая команда не выполнялась, значение NIL возвращен. Если тело while цикл не оценен из-за ложного условия, пустого объекта типа DOM_NULL возвращен.

Смотрите также

Функции MuPAD

Темы

Для просмотра документации необходимо авторизоваться на сайте