Lolcode - Dichiarazioni e controllo del flusso
LOLCODE ti permette di controllare il flusso del programma attraverso varie istruzioni. Questo capitolo spiega i diversi tipi di istruzioni disponibili in LOLCODE.
Dichiarazioni di espressione
Un'espressione senza assegnazione, cioè semplicemente chiamando un'operazione matematica o qualsiasi funzione, è una dichiarazione legale in LOLCODE. Una volta valutata l'espressione, il suo valore finale viene inserito nella variabile temporanea IT. Il valore di IT rimane nell'ambito locale ed esiste fino alla successiva sostituzione con un'espressione.
Dichiarazioni di assegnazione
Le istruzioni di assegnazione vengono utilizzate per assegnare l'output di qualsiasi espressione a una determinata variabile. Sono generalmente della forma -
<any_variable> <assignment operator> <any expression>
Si noti che è possibile utilizzare una variabile nell'espressione, anche prima che venga assegnata.
Dichiarazioni condizionali
Dichiarazioni Se-Allora
L'istruzione if-then è un'operazione molto semplice che lavora sulla variabile IT. È simile alle istruzioni if – else in altri linguaggi di programmazione come C e Java.
Ci sono quattro parole chiave per applicare le istruzioni if – then.
- O RLY?
- YA RLY
- NO WAI
- OIC
La forma generale è:
<any_expression>
O RLY?
YA RLY
<code to execute if above condition is true>
NO WAI
<code to execute in this block>
OIC
Tutte le istruzioni precedenti possono essere scritte nella stessa riga separate da virgole come -
BOTH SAEM NAMES AN "Name", O RLY?
YA RLY, VISIBLE "My name is ABCD"
NO WAI, VISIBLE "Your name is ABCD"
OIC
Durante l'utilizzo delle istruzioni if-then, è possibile utilizzare un MEBBE <qualsiasi espressione> opzionale tra i blocchi YA RLY e NO WAI.
Se <qualsiasi espressione> che segue MEBBE è True (WIN), viene eseguito quel blocco. Altrimenti, se tale espressione è falsa, il blocco viene ignorato fino alle successive istruzioni MEBBE, NO WAI o OIC.
Esempio
<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
Esempio
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
Dichiarazioni di casi
In LOLCODE, la parola chiave "WTF?" è simile allo switch in molte altre lingue. La parola chiave WTF? prende IT come valore dell'espressione per il confronto. Per utilizzare WTF, un blocco di confronto viene aperto da OMG che dovrebbe essere un letterale e non un'espressione.
Ricorda che ogni letterale deve essere univoco, simile al caso in altre lingue.
Il blocco OMG deve essere terminato da un'istruzione GTFO. Se un blocco OMG non viene terminato da un GTFO, viene eseguito il blocco OMG successivo fino a raggiungere GTFO.
Se nessuno dei letterali viene valutato come vero, il caso predefinito viene indicato da 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
I risultati di output del codice precedente saranno:
"E":
EFGH