Справка Houdini на русском VEX

Циклы и управление потоком

On this page

Смотрите также функции VEX. Большая часть работы в VEX выполняется с помощью вызовов функций. Большинство операторов представляют собой циклы, многие из которых могут быть знакомы вам из других языков, например, из языка C. Хотя print это оператор в некоторых языках (Python 2), в VEX вы печатаете с помощью функции printf.

{}

Как в C и многих других языках, вы можете заключить несколько операторов в фигурные скобки, чтобы объединить их в отдельный блок.

Например, оператор if может выполнять одну инструкцию:

if ( needs_zapping() ) zap()

…или несколько инструкций, объединенных в блок из фигурных скобок:

if ( needs_zapping() ) {
    zap()
    disintegrate()
    remove_dust()
}

цикл do

do инструкция(ии) [while (условие)]

Выполняет инструкцию(ии), и затем снова выполняет пока условие истинно. В отличие от цикла while, цикл do гарантированно выполняет инструкцию(ии) хотя бы один раз.

цикл for

for (инициализация; условие; изменение) инструкция(ии)

Стандартный цикл for в стиле языка C. Выполняет инструкцию(ии) инициализации, затем выполняет инструкцию(ии) повторяя до тех пор, пока условие истинно, выполняя инструкцию(ии) изменения в конце каждой итерации.

цикл foreach

foreach (значение; массив) инструкция(ии)

foreach (индекс, значение; массив) инструкция(ии)

Выполняет инструкцию(ии) для каждого элемента массива (необязательно устанавливает индекс в текущую позицию в массиве). Смотрите foreach.

цикл while

while (условие) инструкция(ии)

Выполняет инструкцию(ии) повторяя пока условие истинно.

Другие операторы циклов

Операторы forpoints, illuminance, и gather позволяют вам перебирать данные, обрабатываемые VEX.

if

if (условие) инструкция(ии)_если_истина [else инструкция(ии)_если_ложь]

Выполняет инструкцию(ии)_если_истина если условие истинно.

Если оператор else присутствует, инструкция(ии)_если_ложь выполняется, если условие ложно.

return

Завершение работы функции с необязательным возвращением значения.

int max(int a, b) {
    if (a > b) {
        return a;
    }
    return b;
}

break

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

for (i = 0; i < sizes; i++)
{
    mixamount += getAmount(roughness);
    if (mixamount > 1) {
        break;
    }
}

continue

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

foreach (x; myarray) {
    if (x < 10) continue;
    ...
}

VEX

Язык

Следующие шаги

Справочная информация