Lolcode - declarações e controle de fluxo

LOLCODE permite controlar o fluxo do programa por meio de várias instruções. Este capítulo explica os diferentes tipos de instruções disponíveis no LOLCODE.

Declarações de expressão

Uma expressão sem qualquer atribuição, ou seja, simplesmente chamando uma operação matemática ou qualquer função, é uma declaração válida em LOLCODE. Depois de avaliada a expressão, seu valor final é colocado na variável temporária IT. O valor de TI permanece no escopo local e existe até a próxima vez que for substituído por uma expressão.

Declarações de atribuição

As instruções de atribuição são usadas para atribuir a saída de qualquer expressão a uma determinada variável. Eles geralmente têm a forma -

<any_variable> <assignment operator> <any expression>

Observe que você pode usar uma variável na expressão, mesmo antes de ser atribuída.

Declarações Condicionais

Declarações If-Then

A instrução if-then é uma operação muito simples que trabalha na variável de TI. É semelhante a instruções if – else em outras linguagens de programação como C e Java.

Existem quatro palavras-chave para aplicar as instruções if – then.

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

A forma geral é -

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

Todas as declarações acima podem ser escritas na mesma linha, separadas por vírgulas como -

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

Ao usar as instruções if-then, um MEBBE <qualquer expressão> opcional pode ser usado entre os blocos YA RLY e NO WAI.

Se a <qualquer expressão> após MEBBE for verdadeira (WIN), o bloco será executado. Caso contrário, se a expressão for falsa, o bloco é ignorado até as próximas instruções MEBBE, NO WAI ou OIC.

Exemplo

<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

Exemplo

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

Declarações de caso

Em LOLCODE, a palavra-chave 'WTF?' é semelhante ao switch em muitos outros idiomas. A palavra-chave WTF? considera IT como o valor da expressão para comparação. Para usar o WTF, um bloco de comparação é aberto pelo OMG, que deve ser um literal e não uma expressão.

Lembre-se de que cada literal deve ser único, semelhante ao caso em outras línguas.

O bloco OMG deve ser encerrado por uma instrução GTFO. Se um bloco OMG não for encerrado por um GTFO, o próximo bloco OMG será executado até que GTFO seja alcançado.

Se nenhum dos literais for avaliado como verdadeiro, o caso padrão será representado por 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

Os resultados de saída do código acima serão -

"E":

EFGH