Учебники

Lolcode — Заявления и управление потоком

LOLCODE позволяет контролировать поток программы с помощью различных операторов. В этой главе описываются различные типы операторов, доступных в LOLCODE.

Выражения выражения

Выражение без какого-либо присваивания, то есть простой вызов математической операции или любой функции, является допустимым утверждением в LOLCODE. Как только выражение оценено, его окончательное значение помещается во временную переменную IT. Значение IT остается в локальной области и существует до тех пор, пока в следующий раз не будет заменено выражением.

Заявления о назначении

Операторы присваивания используются для присвоения вывода любого выражения данной переменной. Они обычно имеют форму —

<any_variable> <assignment operator> <any expression>

Обратите внимание, что вы можете использовать переменную в выражении даже до ее назначения.

Условные заявления

Если-тогда заявления

Оператор if-then — очень простая операция, работающая с переменной IT. Это похоже на операторы if-else в других языках программирования, таких как C и Java.

Существует четыре ключевых слова для применения операторов if – then.

  • O RLY?
  • YA RLY
  • НЕТ WAI
  • ОИК

Общая форма —

<any_expression>
O RLY?
   YA RLY
      <code to execute if above condition is true>
   NO WAI
      <code to execute in this block>
OIC

Все вышеперечисленные операторы могут быть записаны в одной строке, разделенной запятыми, как —

 BOTH SAEM NAMES AN "Name", O RLY?
   YA RLY, VISIBLE "My name is ABCD"
   NO WAI, VISIBLE "Your name is ABCD"
 OIC
 

При использовании операторов if-then между блоками YA RLY и NO WAI может использоваться необязательное MEBBE <любое выражение>.

Если <любое выражение> после MEBBE имеет значение True (WIN), то этот блок выполняется. В противном случае, если это выражение ложно, блок пропускается до следующих операторов MEBBE, NO WAI или OIC.

пример

<any expression>
O RLY?
   YA RLY
      <code to be executed if true>
   MEBBE <expression>
      <code to be executed mebbe is true>
   MEBBE <expression>
      <code to be executed mebbe is true>
   NO WAI
      <code to be executed if above are false>
OIC 

пример

BOTH SAEM NAMES AN "NAME"
O RLY?
   YA RLY, VISIBLE "YOUR NAME IS ABCD"
   MEBBE BOTH SAEM ANIMAL AN "OUR NAME IS ABCD"
   VISIBLE "NO ABCD"
OIC

Заявления по делу

В LOLCODE ключевое слово «WTF?» похоже на переключение во многих других языках. Ключевое слово WTF? принимает значение IT в качестве значения выражения для сравнения. Чтобы использовать WTF, OMG открывает блок сравнения, который должен быть литералом, а не выражением.

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

Блок OMG должен завершаться оператором GTFO. Если блок OMG не завершен GTFO, то следующий блок OMG выполняется до достижения GTFO.

Если ни один из литералов не оценивается как true, регистр по умолчанию обозначается OMGWTF.

WTF?
   OMG <any value to compare>
      <code block to execute if expression is satisfied>
   OMG <any value to compare>
      <code block to execute if expression is satisfied>
   OMGWTF
      <code block to execute as a default case>
OIC
NAME, WTF?
   OMG "A"
      VISIBLE "ABCD"
   GTFO
   OMG "E"
      VISIBLE "EFGH"
   GTFO
   OMGWTF
      VISIBLE "ZYXW"
   OIC

Выходные результаты вышеуказанного кода будут —

«E»: