Условие "if" позволяет вашей программе вести себя по разному в зависимости от состояния, например от ввода пользователя. Вот основная форма команды If:
If (some condition is true)
{
do something;
do something;
do something;
}
Важные части этой структуры:
Помните, пробелы нужны там для лучшего представления структуры. Я предпочитаю выравнивать команды между фигурными скобками. Но Вы можете помещать полную команду if в один ряд, как вам нравится.
Другая команда - else, является противоположностью if. Если вы размещаете её непосредственно после закрывающей фигурной скобки if, тогда эта инструкция (else) выполняется если не выполнено условие if . Вот пример действия команды if-else:
function
which_key()
{
if
(key_space == 1) // клавиша нажата [space]?
{
print("Hit the space key!");
}
else // не клавиша нажата [space] ?
{
print("Hit another key!");
}
}
Отображается разный текст в зависимости от того, является ли key_space 1 или нет. key_space является предопределенной переменной, которая = 1 пока нажата клавиша [Space], иначе 0. Условие "==" в круглых скобках истинно, если значение key_space равно 1. Введите эту функцию выше функции main нашего tutorial.wdl и введите дополнительное объявление в основную функцию:
function main()
{
screen_color.blue = 128; // устанавливаем темно-синий фон
print("Hallo Welt!"); // отображаем строку
ON_anykey = which_key; // назначаем функцию which_key на событие "any key"
}
on_anykey выполняет назначенную функцию каждый раз когда нажимается клавиша. Как видите, имеются два пути выполнить функцию - или вызов из другой функции, или назначение некоторому событию (event). Только напечатать это в WDL файле будет не достаточно для выполнения функции! Только функция main автоматически назначена событию "начало игры". Обратите внимание что когда функция назначается событию (а не вызывается непосредственно из другой функции), никакие параметры не задаются, и никаких скобок ставить не нужно! (от себя: иначе движок зависнет !) Теперь запустите программу, затем нажмите некоторые клавиши. На экран выводятся различные сообщения в зависимости от того нажали ли вы пробел или другую клавишу. Обратите внимание, что условие определяется как "==" (эквивалентность), а не "=" (присваивание). Это - одна из расхожих ошибок новичков. Если Вы помещаете один знак "=" вместо двух , это не будет работать - один знак "=" означает присваивание, а не эквивалентность. Другие типичные условия:
(var_1 > var_2) is true if var_1 is greater than var_2
(var_1 < var_2) is true if var_1 is less than var_2
(var_1 <= var_2) is true if var_1 is less than or equal to var_2
(var_1 >= var_2) is true if var_1 is greater than or equal to var_2
(var_1 != var_2) is true if var_1 does not equal var_2
Если вы хотите что бы два условия были верными, перед тем как начать действия в фигурных скобках вы можете сделать это так :
if
((var_1 > 18) && (var_1 < 21))
{
do something;
}
Обратите внимание на эти два амперсанда. Символ "&&" означает "и" в WDL. Обратите внимание также что целое предложение, состоящее из этих двух под-частей и амперсандов, должно быть заключено в круглые скобки.
И так, теперь самое время сделать небольшой обзор вещей, которые мы охватили. Если вы чувствуете что не поняли одну из следующих вещей, - вернитесь назад и внимательно изучите снова:
Поздравляю, если вы разобрались со всем материалом, его было довольно много. Мы изучили переменные, строки, функции и предложения "if-else", которые являются частями всех языков программирования. Теперь время изучить остальную часть WDL синтаксиса. Имеется ещё один аспект WDL синтаксиса, который мы должны охватить: циклы - loops.