Условные операторы (Conditional Statements)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py включает несколько операторов, которые могут изменять поток управления на основе значений выражения. Это в дополнение к операторам jump, call и return, которые передают управление без каких-либо предварительных условий.

Обратите внимание, что на этой странице рассматриваются операторы, которые можно использовать внутри скрипта Ren'Py. Код на языка программирования Python, встроенный в игру на Ren'Py, использует операторы на языке Python (while, if и for), но не может встраивать скриптовый код Ren'Py.

Оператор if (If Statement)[править | править код]

Оператор if условно выполняет блок операторов, если выражение языка Python принимает истинное значение. Условная инструкция состоит из оператора if, нуля или более операторов elif и необязательного оператора else.

Каждая составная часть условной инструкции должна находится на своей собственной логической строке, за которой следует блок операторов. За операторами if и elif следует выражение, все вышеуказанные операторы заканчиваются двоеточием.

Например:

if flag:
    e "Вы установили флаг!"

или

if points >= 10:
    jump best_ending
elif points >= 5:
    jump good_ending
elif points >= 1:
    jump bad_ending
else:
    jump worst_ending

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

Если все выражения принимают ложное значение, выполняется блок, связанный с необязательным оператором else, если он присутствует в вашей условной инструкции.

Оператор while (While Statement)[править | править код]

Оператор while выполняет блок операторов, в то время как выражение принимает значение True.

Например:

$ count = 10

while count > 0:

    "Запуск через [count]."

    $ count -= 1

"Взлёт!"

или

while True:
    "Это песня, которая никогда не прекращает."
    "Она продолжается и продолжается, мои соотечественники."

Выражение вычисляется при первом достижении оператора while, а потом каждый раз, когда управление достигает конца блока. Когда выражение возвращает ложное значение, выполняется оператор после оператора while.

В Ren'Py отсутствуют операторы continue, break или for. Операторы continue и break могут быть заменены переходами к меткам, размещенным до или после цикла while, соответственно. Первый пример цикла while, приведённый выше, показывает, как цикл while может заменить оператор for.

Оператор pass (Pass Statement)[править | править код]

Оператор pass можно использовать, когда требуется блок, но нет подходящего оператора. Оператор pass ничего не делает.

Например:

if points >= 10:
    "Ты отлично справляешься!"
elif points >= 1:
    pass
else:
    "Всё, что ты делаешь, выглядит не очень хорошо."
# event.step() - функция, которая возвращает значение True, пока еще есть
# события, которые должны быть выполнены.

while event.step():
    pass

Источник[править | править код]

Статья "Conditional Statements" на английском языке.


На главную страницу Официальная документация движка Вернуться к началу статьи