Lolcode - Declaraciones y control de flujo

LOLCODE le permite controlar el flujo del programa a través de varias declaraciones. Este capítulo explica los diferentes tipos de declaraciones disponibles en LOLCODE.

Declaraciones de expresión

Una expresión sin ninguna asignación, es decir, simplemente llamar a una operación matemática o cualquier función, es una declaración legal en LOLCODE. Una vez evaluada la expresión, su valor final se coloca en la variable temporal IT. El valor de TI permanece en el ámbito local y existe hasta la próxima vez que se reemplace con una expresión.

Declaraciones de asignación

Las declaraciones de asignación se utilizan para asignar la salida de cualquier expresión a una variable determinada. Generalmente tienen la forma:

<any_variable> <assignment operator> <any expression>

Tenga en cuenta que puede utilizar una variable en la expresión, incluso antes de que se asigne.

Declaraciones condicionales

Declaraciones Si-Entonces

La declaración if-then es una operación muy simple que trabaja en la variable de TI. Es similar a las sentencias if-else en otros lenguajes de programación como C y Java.

Hay cuatro palabras clave para aplicar las declaraciones si-entonces.

  • O RLY?
  • YA RLY
  • NO WAI
  • OIC

La forma general es -

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

Todas las declaraciones anteriores se pueden escribir en la misma línea separadas por comas como -

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

Al usar las declaraciones if-then, se puede usar un MEBBE <cualquier expresión> opcional entre los bloques YA RLY y NO WAI.

Si la <cualquier expresión> que sigue a MEBBE es verdadera (WIN), ese bloque se ejecuta. De lo contrario, si esa expresión es falsa, el bloque se salta hasta las siguientes declaraciones MEBBE, NO WAI u OIC.

Ejemplo

<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

Ejemplo

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

Declaraciones de casos

En LOLCODE, la palabra clave 'WTF?' es similar a cambiar en muchos otros idiomas. ¿La palabra clave WTF? toma IT como valor de expresión para la comparación. Para usar WTF, OMG abre un bloque de comparación que debe ser un literal y no una expresión.

Recuerde que cada literal debe ser único, similar al caso en otros idiomas.

El bloque OMG debe terminar con una declaración GTFO. Si un bloque OMG no es terminado por un GTFO, entonces se ejecuta el siguiente bloque OMG hasta que se alcanza GTFO.

Si ninguno de los literales se evalúa como verdadero, entonces OMGWTF indica el caso predeterminado.

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

Los resultados de salida del código anterior serán:

"MI":

EFGH