Lolcode - Kurzanleitung
LOLCODE ist eine esoterische Programmiersprache, die von den lustigen Dingen im Internet inspiriert ist. Es wurde entwickelt, um die Grenzen des Entwurfs von Programmiersprachen zu testen.
In diesem Kapitel werden Sie mit dem Einrichten der lokalen Umgebung für LOLCODE, der Installation unter Windows und der Online-Ausführung des Skripts unter Tutorialspoint-codingground vertraut gemacht.
Einrichten der lokalen Umgebung
Der LOLCODE-Interpreter ist in C-Sprache geschrieben. Es interpretiert den in LOLCODE geschriebenen Code auf mehreren Plattformen. Der LOLCODE-Interpreter ist als lci bekannt und steht für LOLCODE Interpreter.
Bitte beachten Sie, dass LOLCODE die direkte Installation von Interpreter nur für MAC-Betriebssysteme offiziell unterstützt. Um LOLCODE in Ihrem Betriebssystem zu installieren, müssen Sie die folgenden Schritte ausführen:
- Drücken Sie Befehlstaste + Leertaste und geben Sie ein Terminal und drücke enter/return Schlüssel
- In der Terminal-App ausführen
- $ git Klon https://github.com/justinmeza/lci.git
- $ cd lci
- $ cmake.
- $ make && make install
Installation unter Windows
Wenn Sie LOLCODE unter Windows installieren müssen, führen Sie die folgenden Schritte aus:
Fügen Sie zuerst MinGW und Python zu Ihrem Umgebungsvariablenpfad hinzu. Klicken Sie dazu mit der rechten Maustaste aufMy Computer, wählen Properties, dann wählen Sie Advanced system settings. Wählen Environment Variables. Wählen Sie in diesem Feld die Option ausPATH Variable und dann klicken Edit.
Fügen Sie nun am Ende dieses Pfads "; C: \ MinGW \ bin; C: \ Python32" hinzu.
Öffnen Sie als nächstes die Command Prompt und navigieren Sie beispielsweise mit dem Befehl "cd" zum Projektverzeichnis.
Führen Sie das Skript install.py aus.
Skript online mit TutorialsPoint ausführen - Codingground
Verwenden Sie die von TutorialsPoint bereitgestellte Codingground- Plattform, um Ihre Skripte einfach und schnell auszuführen . Gehen Sie dazu auf den folgenden Link, um Ihre Skripte online auszuführen -
https://www.tutorialspoint.com/execute_lolcode_online.phpLOLCODE hat eine andere Syntax als andere Programmiersprachen, ist jedoch leichter zu merken. Dieses Kapitel enthält die grundlegende Syntax von LOLCODE.
Konstruiert
Die LOLCODE-Konstrukte sind Slangwörter. Die folgende Tabelle zeigt die alphabetische Liste der bisher implementierten Konstrukte -
Sr.Nr. | Konstruieren & Verwenden |
---|---|
1 | BTW Es beginnt ein einzeiliger Kommentar. |
2 | DOWN <variable>!!<times> Dies entspricht Variable = Variable - Zeiten. Beachten Sie, dass "times" eine reine Spracherweiterung ist. |
3 | GIMMEH <variable> Dies repräsentiert die Eingabeanweisung. |
4 | GTFO Dies ist ähnlich wie break in anderen Sprachen und bietet eine Möglichkeit, aus einer Schleife auszubrechen. |
5 | HAI Dies entspricht main ()Funktion in anderen Sprachen. Es ist der Programmeinstiegspunkt in LOLCODE. |
6 | HEREZ <label> Dies ist eine weitere wut-only-Spracherweiterung und deklariert ein Label zur Verwendung mit SHOO |
7 | I HAS A <type> <variable> Dies deklariert eine Variable dieses Typs. In LOLCODE sind drei Typen integriert:
Beachten Sie, dass Typen eine reine Spracherweiterung sind. |
8 | IM IN YR LOOP Dies startet eine Endlosschleife. Die einzige Möglichkeit, die Schleife zu verlassen, ist die Verwendung von GTFO. Entspricht für(;;) in anderen Sprachen |
9 | IZ <expr1> <operator> <expr2>?: Conditional structure Dies ähnelt dem Operator in anderen Sprachen. Betreiber ist einer von: GRÖSSER ALS, KLEINER ALS, SAEM AS. Notiere dass der ? am Ende ist optional. |
10 | KTHX Es endet ein Block. Entspricht} |
11 | KTHXBAI Dies beendet ein Programm |
12 | NOWAI Dies entspricht sonst |
13 | PURR <expr> Dadurch wird das Argument auf dem Bildschirm gedruckt, gefolgt von einer neuen Zeile. Es ist eine Nur-Sprach-Erweiterung. |
14 | RELSE Dies entspricht else (if) |
15 | SHOO Dies ist eine weitere Nur-Nur-Sprache-Spracherweiterung, die entspricht goto (der Horror!) |
16 | UP <variable>!!<times> Dies entspricht Variablen = Variable + Zeiten. Hier ist "times" eine reine Spracherweiterung. |
17 | VISIBLE <expr> Dies druckt das Argument auf dem Bildschirm. Beachten Sie, dass hierdurch keine neue Zeile gedruckt wird. |
18 | YARLY Dies bezeichnet den Beginn des "wahren" bedingten Blocks |
Einige Beispiele für Slang-Begriffe in LOLCODE sind -
- HAI ist hallo
- KTHXBYE ist okay, danke, tschüss
- Übrigens ist übrigens
- OBTW ist übrigens oh
- TLDR ist zu lang; habe nicht gelesen
Leerzeichen
In den meisten Programmiersprachen dürfen Schlüsselwörter oder Token keine Leerzeichen enthalten. In einigen Sprachen werden jedoch Leerzeichen in Token verwendet, um sie zu unterscheiden.
Komma
Das Komma verhält sich in den meisten Sprachen wie ein Zeilenumbruch-Schlüsselwort, z. \n in Java und C. Sie können in LOLCODE viele Befehle in einer einzigen Zeile schreiben, vorausgesetzt, Sie trennen sie durch ein Komma (,).
Drei Perioden (…)
Mit den drei Punkten (…) können Sie mehrere Codezeilen zu einer einzigen Zeile oder einem einzelnen Befehl kombinieren, indem Sie (...) am Ende der Zeile einfügen. Dadurch behandelt der Compiler den Inhalt der nächsten Zeile nur als den Inhalt der vorherigen Zeile. Unendliche Codezeilen können als ein einziger Befehl zusammen geschrieben werden, solange jede Zeile mit drei Punkten endet.
Ein Kommentar wird durch einen Zeilenumbruch beendet. Bitte beachten Sie, dass die Zeilenfortsetzung (...) und (,) nach dem Kommentar (BTW) vom lci ignoriert werden.
Bemerkungen
Einzeilige Kommentare werden geschrieben, gefolgt vom Schlüsselwort BTW. Sie können an einer beliebigen Stelle innerhalb eines Programmkörpers auftreten: Sie können sich in der ersten Programmzeile, zwischen dem Programm, zwischen einer Zeile oder am Ende eines Programms befinden.
All dies sind gültige einzeilige Kommentare
I HAS A VAL ITZ 19 BTW VAL = 19
I HAS A VAL ITZ 19, BTW VAL = 19
I HAS A VAL ITZ 14
BTW VAR = 14
In LOLCODE werden mehrzeilige Kommentare gefolgt von OBTW geschrieben und mit TLDR beendet.
Dies ist ein gültiger mehrzeiliger Kommentar -
I HAS A VAL ITZ 51
OBTW this is a comment
No it’s a two line comment
Oops no.. it has many lines here
TLDR
Dateierstellung
Ein LOLCODE-Programm beginnt mit dem Schlüsselwort HAI und sollte mit KTHXBYE enden. Da LOLCODE die Kurzsprache verwendet, steht HAI im Grunde genommen für Hi und KTHXBYE kann als erinnert werden“Ok, thanks, bye ”.
Beispiel
HAI 1.2
I HAS A NAME
VISIBLE "NAME::"!
GIMMEH NAME
VISIBLE "tutorialsPoint " NAME "!"
KTHXBYE
Wie in jeder anderen Programmiersprache können Sie mit LOLCODE Variablen verschiedener Typen definieren. In diesem Kapitel werden Sie mit der Arbeit mit Variablen in LOLCODE vertraut gemacht.
Umfang der Variablen
Der Bereich einer Variablen ist lokal für die Funktion oder den Programmblock, dh eine in einem Bereich definierte Variable kann in keinem anderen Bereich desselben Programms aufgerufen werden. Auf Variablen kann erst zugegriffen werden, nachdem sie deklariert wurden.
Bitte beachten Sie, dass es in LOLCODE keinen globalen Variablenbereich gibt.
Regeln der Namensgebung
Variablennamen werden normalerweise als Bezeichner bezeichnet. Hier sind einige der Konventionen zum Benennen von Variablen in LOLCODE -
Variablenbezeichner können in Großbuchstaben oder Kleinbuchstaben (oder einer Mischung aus beiden) angegeben werden.
Sie können nur mit einem Buchstaben beginnen und können dann von anderen Buchstaben, Zahlen und Unterstrichen gefolgt werden.
LOLCODE erlaubt keine Verwendung von Leerzeichen, Bindestrichen oder anderen Symbolen beim Benennen einer Variablen.
Bei Variablenkennungen wird zwischen Groß- und Kleinschreibung unterschieden.
Hier sind einige der Regeln für gültige und ungültige Namen für Variablen in LOLCODE−
Der Name sollte immer mit einem Alphabet beginnen. Zum Beispiel,name, Name sind gültig.
Der Name einer Variablen darf nicht mit einer Ziffer beginnen. Zum Beispiel,2var ist ungültig.
Der Name einer Variablen darf nicht mit einem Sonderzeichen beginnen.
Eine Variable kann _ oder eine Ziffer an einer beliebigen Stelle in ihrem Namen enthalten, außer am Startindex. Zum Beispiel,name2_m ist ein gültiger Name.
Einige Beispiele für gültige Namen in LOLCODE sind unten aufgeführt -
HAI 1.2
I HAS A food ITZ "111.00033"
I HAS A food2 ITZ "111"
I HAS A fo_od ITZ "1"
VISIBLE food
VISIBLE food2
VISIBLE fo_od
KTHXBYE
Alle Deklarationsanweisungen im obigen Code sind gültig und erzeugen bei der Ausführung die folgende Ausgabe:
sh-4.3$ lci main.lo
111.00033
111
1
Einige Beispiele für ungültige Anweisungen und ihre Ausgabe sind unten angegeben -
Beispiel 1
HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE
Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -
sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).
Beispiel 2
HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE
Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".
Beispiel 3
HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE
Der obige Code gibt die folgende Ausgabe aus, wenn Sie ihn ausführen -
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
Deklaration und Zuordnung von Variablen
Zu declareAls Variable bietet LOLCODE ein Schlüsselwort "I HAS A", gefolgt vom Variablennamen. Nachfolgend finden Sie die Syntax zum Deklarieren einer Variablen.
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
Zu assignWenn die Variable einen Wert in derselben Anweisung hat, können Sie dem Variablennamen mit „ITZ“ folgen und dann den Wert angeben, den Sie zuweisen möchten. Verwenden Sie die folgende Syntax, um einer Variablen einen Wert zuzuweisen:
<variable> R <expression>
Beispiel
VAR R "Green" BTW VAR is now a YARN and equals "Green"
VAR R 30 BTW VAR is now a NUMBR and equals 30
Du kannst auch declare und assign Variablen gleichzeitig mit der folgenden Syntax -
I HAS A VAR ITZ VALUE
Beispiel
I HAS A NAME ITS “TUTORIALS POINT”
Beispiel
HAI 1.2
BTW this is how we declare variables
I HAS A food
I HAS A bird
BTW this is how we assign variables
food R 1
bird R 5
BTW this is how initialize variables
I HAS A biz ITZ "OMG!"
VISIBLE food
VISIBLE biz
VISIBLE bird
KTHXBYE
Das obige Programm zeigt die Deklaration von Variablen und druckt sie aus. Die Ausgabe ist -
sh-
4.3$ lci main.lo
1
OMG!
5
Typ Casting
Um einen Wert eines Typs in einen anderen Typ zu konvertieren, verwenden wir Typumwandlung. Durch das Umwandeln einer NUMBAR in eine NUMBR wird der Dezimalteil der Gleitkommazahl abgeschnitten. Wenn Sie eine NUMBAR in ein YARN umwandeln (z. B. durch Drucken), wird die Ausgabe auf die Standard-2-Dezimalstellen gekürzt.
Beispiel
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
Die obige Codezeile erzeugt die folgende Ausgabe:
sh-4.3$ lci main.lo
111.00033
111.00033
Alle in einem LOLCODE-Programm deklarierten Variablen sind lokale Variablen, und in dieser Sprache gibt es keinen globalen Bereich für eine Variable.
LOLCODE wurde entwickelt, um die Grenzen des Programmiersprachenentwurfs zu testen. Es ist eine esoterische Programmiersprache, die von den lustigen Dingen im Internet inspiriert ist. Dieses Kapitel vermittelt Ihnen ein Verständnis der LOLCODE-Typen.
Typen
Derzeit sind die Variablentypen in LOLCODE -
- Saiten (YARN)
- ganze Zahlen (NUMBR)
- schwimmt (NUMBAR)
- und Boolesche Werte (TROOF)
- Arrays (BUKKIT)
In LOLCODE wird der Variablentyp vom Compiler dynamisch behandelt. Wenn eine Variable keinen Anfangswert hat, wird sie als untypisiert bezeichnet (in LOLCODE als NOOB bezeichnet).
Die Syntax zum Deklarieren und Verwenden verschiedener Typen in LOLCODE ist unten dargestellt:
So erstellen Sie eine Variable eines beliebigen Datentyps
I HAS A <VARIABLE> ITZ A <DATA TYPE>
So erstellen Sie eine Variable und weisen ihr einen Wert zu
I HAS A <VARIABLE> ITZ <EXPRESSION<
So weisen Sie einem bereits erstellten Datentyp einen Wert zu
<VARIABLE> R <EXPRESSION>
Untyped (NOOB)
Der untypisierte Datentyp (bekannt als NOOB) kann nur in einen TROOF-Datentyp in einen anderen Typ konvertiert werden. Das implizite Casting eines NOOB in TROOF macht die Variable FAIL. Danach führt jede Operation an einem NOOB zu einem Fehler.
Explizite Casts eines NOOB-Datentyps (dh der Typen, die nicht initialisiert sind und keinen Anfangswert haben) ergeben für alle anderen Typen Nullwerte.
Um eine untypisierte Variable zu definieren, deklarieren Sie einfach eine Variable und weisen Sie einen Wert zu, wie in diesem Beispiel gezeigt.
HAI 1.2
I HAS A VAR3
VAR3 R "ANYVALUE"
VISIBLE VAR3
BTW Or declare in same line
I HAS A VAR4 ITZ 44
VISIBLE VAR4
KTHXBYE
Wenn Sie das obige Programm ausführen, finden Sie das folgende Ergebnis:
sh-
4.3$ lci main.lo
ANYVALUE
44
Boolesche Werte (TROOFS)
In LOLCODE gibt es zwei Arten von Booleschen Werten. BOOLEAN hat im Allgemeinen zwei Werte - wahr und falsch. In LOLCODE ist der Boolesche Wert jedoch als TROOF bekannt, und die True / False-Werte sind als WIN / FAIL bekannt. Alle nicht initialisierten Werte wie eine leere Zeichenfolge ("") oder ein leeres Array werden in FAIL umgewandelt. Alle anderen initialisierten Werte werden als WIN ausgewertet.
Beispiel
HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
VISIBLE VAR3
KTHXBYE
Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen -
sh-4.3$ lci main.lo
FAIL
Numerische Typen (NUMBR)
In LOLCODE steht ein NUMBR für eine ganze Zahl. Jede Ziffernfolge wird als NUMBR betrachtet, es sei denn, irgendwo zwischen der Folge erscheint eine Dezimalstelle. Um eine Zahl negativ zu machen, kann ein Bindestrich (-) vorangestellt werden, der eine negative Zahl kennzeichnet.
Beispiel
HAI 1.2
I HAS A VAR3 ITZ A NUMBR
VISIBLE VAR3
KTHXBYE
Der obige Code zeigt Ihnen das folgende Ergebnis, wenn Sie es ausführen
sh-
4.3$ lci main.lo
0
Ähnlich wie NUMBR hat LOLCODE einen anderen Datentyp, der in vielen Programmiersprachen eine Dezimalzahl oder einen Gleitkommawert darstellt. In LOLCODE ist eine NUMBAR ein Gleitkomma mit einem Dezimalpunkt. Durch das Umwandeln einer NUMBAR in eine NUMBR wird der Dezimalteil der Gleitkommazahl abgeschnitten und als NUMBR ohne Dezimalzahl zurückgegeben.
Saiten (Garn)
In LOLCODE sollte ein Wert, der Zeichenfolgen enthält, dh Zeichenfolgenliterale (YARN), mit doppelten Anführungszeichen ("") beginnen und enden.
Alles kann in die Zeichenfolge geschrieben werden, z. B. Leerzeichen, Komma, Punkt, Ausrufezeichen oder ein anderes Symbol. Eine Zeichenfolge, in der ein einfaches Anführungszeichen fehlt, kann einen Fehler verursachen. Doppelpunkte werden in LOLCODE als Escape-Zeichen verwendet, und jeder Wert nach einem Doppelpunkt erhält eine besondere Bedeutung.
:) - Eine schließende Klammer nach einem Doppelpunkt steht für eine neue Zeile (\ n).
:> - Eine schließende Klammer nach einem Doppelpunkt steht für eine Registerkarte (\ t).
:o - A. ‘o’ Das Zeichen nach einem Doppelpunkt steht für eine Glocke (Piepton) (\ g).
:" - Ein "nach einem Doppelpunkt steht für ein wörtliches doppeltes Anführungszeichen (")
:: - Ein Doppelpunkt nach einem Doppelpunkt steht für einen einzelnen wörtlichen Doppelpunkt (:)
Beispiel
HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
VISIBLE VAR3
KTHXBYE
Der oben angegebene Code erzeugt bei der Ausführung die folgende Ausgabe:
sh-
4.3$ lci main.lo
XYZ
BUKKIT
Dieser Typ repräsentiert ein Array. Es hat Slots benannt, die entweder Variablen oder Funktionen enthalten können. Ein BUKKIT kann folgendermaßen deklariert werden:
BTW declaration of the BUKKIT
I HAS A [object] ITZ A BUKKIT BTW creating a variable in a slots
[object] HAS A [var] ITZ [value] BTW creating a function inside the BUKKIT
HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
[function code]
IF U SAY SO
Eine Funktion in einem BUKKIT kann auch mit ME'Z [var] oder ME IZ [Funktionsname] (YR [Argument1] (AN YR [Argument2] (AN YR [Argument3] ...) auf Variablen und andere Funktionen des BUKKIT zugreifen. ))) MKAY.
Beispiel
HAI 1.2
I HAS A VAR6 ITZ A BUKKIT
BTW DECLARING AN ARRAY
VAR6 HAS A VAR7 ITZ "DOGE"
BTW VAR7 IS A STRING VARIABLE THAT IS INSERTED INTO ARRAY VAR6
VISIBLE VAR6'Z VAR7
BTW GET THE ELEMENT OF ARRAY
KTHXBYE
Dies ist die Ausgabe, die Sie finden, wenn Sie den oben angegebenen Code ausführen -
sh-
4.3$ lci main.lo
DOGE
Operatoren spielen eine wichtige Rolle bei der Ausführung verschiedener Operationen an Variablen. Dieses Kapitel enthält verschiedene Operatoren in LOLCODE und deren Verwendung.
Betreiber
Mathematische Operatoren hängen von einer Präfixnotation ab, dh der Notation, die vor dem Operanden steht. Wenn allen Operatoren die Anzahl der Argumente oder Operanden bekannt ist, sind keine Gruppierungsmarkierungen erforderlich. In Fällen, in denen Operatoren keine festen Argumente oder Operanden haben, wird die Operation mit MKAY geschlossen.
Ein MKAY darf nicht verwendet werden, wenn es mit dem Ende der Anweisung übereinstimmt. In solchen Fällen sollte das Schlüsselwort EOL verwendet werden. Verwenden Sie die folgende Syntax, um unäre mathematische Operatoren zu verwenden:
<operator> <expression>
Das Schlüsselwort AN kann optional verwendet werden, um Argumente zu trennen und eine einzelne Operation auf mehr als einen Operanden anzuwenden, sodass ein binärer Operatorausdruck die folgende Syntax hat:
<operator> <expression1> AN <expression2>
Jeder Ausdruck, der einen Operator mit unendlich vielen Argumenten enthält, kann mit der folgenden Syntax ausgedrückt werden:
<operator> <expression1> [[AN <expression2>] AN <expression3> ...] MKAY
Mathematik
Im Folgenden sind die grundlegenden mathematischen Operationen in LOLCODE aufgeführt:
SUM OF <a> AN <b> BTW This is a plus + operator
DIFF OF <a> AN <n> BTW This is a minus - operator
PRODUKT OF <a> AN <n> BTW This is a multiply operator *
QUOSHUNT OF <a> AN <n> BTW This is a divide operator
MOD OF <a> AN <n> BTW This is a modulo operator
BIGGR OF <a> AN <n> BTW This is a max operator
SMALLR OF <a> AN <n> BTW This is a min operator
<a> und <b> können oben jeweils eindeutige Ausdrücke sein, sodass mathematische Operatoren unbegrenzt verschachtelt und gruppiert werden können.
Die Mathematik wird unter Berücksichtigung von Argumenten als ganzzahlige Mathematik in Gegenwart von zwei NUMBRs ausgeführt. Wenn jedoch einer der Ausdrücke NUMBAR ist, werden Operationen als Gleitkommaoperationen betrachtet.
Beispiel
HAI 1.2
I HAS A m ITZ 4
I HAS A n ITZ 2
VISIBLE SUM OF m AN n BTW +
VISIBLE DIFF OF m AN n BTW -
VISIBLE PRODUKT OF m AN n BTW *
VISIBLE QUOSHUNT OF m AN n BTW /
VISIBLE MOD OF m AN n BTW modulo
VISIBLE BIGGR OF m AN n BTW max
VISIBLE SMALLR OF m AN n BTW min
KTHXBYE
Der obige Code erzeugt die folgende Ausgabe, wenn Sie ihn ausführen -
sh-
4.3$ lci main.lo
6
2
8
2
0
4
2
Wichtige Punkte -
Berücksichtigen Sie die folgenden wichtigen Punkte im Zusammenhang mit der Arbeit mit mathematischen Operatoren in LOLCODE−
Wenn eines oder beide Argumente in einem Ausdruck YARN sind, werden sie als NUMBARs behandelt.
Wenn eines der Argumente nicht sicher intern in einen numerischen Typ umgewandelt werden kann, schlägt dies mit einem Fehler fehl
Boolescher Wert
Boolesche Operatoren werden auf Werte angewendet, die wahr oder falsch sein können. Boolesche Operatoren, die an TROOFs arbeiten, sind wie folgt:
BOTH OF <m> AN <n> BTW its and operation: WIN if m = WIN and n = WIN
EITHER OF <m> AN <n> BTW its or operation: FAIL iff m = FAIL, n = FAIL
WON OF <m> AN <n> BTW its xor operation: FAIL if m = n
NOT <m> BTW its an unary negation: WIN if m = FAIL
ALL OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply AND
ANY OF <m> AN <n> ... MKAY BTW it will take infinite arguments and apply OR.
Bitte beachten Sie, dass <m> und <n> in der obigen Ausdruckssyntax automatisch als TROOF-Werte umgewandelt werden, wenn sie nicht bereits TROOF-Werte sind.
Vergleich
Wenn Sie zwei oder mehr Operanden in LOLCODE vergleichen möchten, können Sie dies mit einer der folgenden Methoden tun:
Methode 1
Sie können zwei binäre Operanden mit Gleichheitsoperatoren vergleichen. Die Syntax wird unten gezeigt -
BOTH SAEM <m> AN <n> BTW this will return WIN if m is equal to n
DIFFRINT <m> AN <n> BTW this will return WIN if m is not equal to n
Methode 2
Sie können vergleichen, ob beide Werte vom Typ NUMBRs sind. Denken Sie daran, dass wenn einer der Werte NUMBARs sind, diese als Gleitkommawerte verglichen werden.
Methode 3
Sie können den Vergleich auch mit den Minimal- und Maximaloperatoren durchführen. Die Syntax wird unten gezeigt -
BOTH SAEM <m> AN BIGGR OF <m> AN <n>
BOTH SAEM <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN SMALLR OF <m> AN <n>
DIFFRINT <m> AN BIGGR OF <m> AN <n>
Example
HAI 1.2
I HAS A VAR11 ITZ 7
BOTH SAEM VAR11 SMALLR OF VAR11 AN 8, O RLY?
YA RLY
VISIBLE "TRUE"
NO WAI
VISIBLE "FALSE"
OIC
KTHXBYE
Sie können die folgende Ausgabe sehen, wenn Sie den angegebenen Code ausführen -
sh-
4.3$ lci main.lo
TRUE
Verkettung von Werten
Mit LOLCODE können Sie mit dem Operator SMOOSH… MKAY unendlich viele YARNs explizit verketten. Zur Verkettung können mehrere Argumente mit dem getrennt werdenAN Operator.
Beispiel
HAI 1.2
I HAS A VAR1 ITZ A YARN
VAR1 R "TRUE"
I HAS A VAR2 ITZ A YARN
VAR2 R "ANOTHER TRUE"
I HAS A VAR3 ITZ A YARN
VAR3 R "ONE MORE TRUE"
VISIBLE SMOOSH VAR1 " " VAR3 " " VAR2 MKAY
KTHXBYE
Der oben angegebene Code führt bei der Ausführung zu folgendem Ergebnis:
sh-
4.3$ lci main.lo
TRUE ONE MORE TRUE ANOTHER TRUE
Typ Casting
Operatoren, die an bestimmten Typen arbeiten, wandeln implizit die Werte eines Typs um oder konvertieren sie sicher in einen anderen Typ. Wenn der Wert nicht sicher in einen anderen Typ konvertiert werden kann, führt dies zu einem Fehler.
Der Wert eines Ausdrucks kann mit dem binären MAEK-Operator explizit umgewandelt oder in einen anderen Typ konvertiert werden. Die Syntax von MAEK Operator lautet -
MAEK <expression> A <type>
Dabei kann <Typ> TROOF, YARN, NUMBR, NUMBAR oder NOOB sein.
Um eine Variable explizit in einen anderen Typ umzuwandeln, kann eine normale Zuweisungsanweisung mit dem MAEK-Operator verwendet werden, oder eine Umwandlungszuweisungsanweisung kann wie folgt verwendet werden:
<Any_variable> IS NOW A <type> BTW this code will be equal to
<Any_variable> R MAEK <variable> A <type>
Beispiel
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
Der obige Code erzeugt die folgende Ausgabe -
sh-4.3$ lci main.lo
111.00033
111.00033
In diesem Kapitel erfahren Sie, wie Sie einen Wert über das LOLCODE-Terminal eingeben und auf dem Terminal ausgeben.
E / A vom Terminal
Sie können das Schlüsselwort VISIBLE verwenden, um etwas in LOLCODE zu drucken. VISIBLE ist eine Funktion, die eine unendliche Anzahl von Zeichen als Eingabe verwenden und alle auf einmal drucken kann, indem sie intern verkettet und in Zeichenfolgen oder YARN konvertiert werden.
Die Funktion VISIBLE endet oder endet durch ein Trennzeichen, das entweder ein Zeilenende oder ein Komma ist.
Die Ausgabe wird vom Compiler automatisch mit einem Wagenrücklauf beendet. Wenn das letzte Token mit einem Ausrufezeichen (!) Beendet wird, wird der zurückgegebene Wagen von diesem Symbol überschrieben.
VISIBLE <any_expression> [<any_expression> ...][!]
Bitte beachten Sie, dass es in LOLCODE derzeit keinen definierten Standard zum Drucken einiger Daten in eine Datei gibt.
Um Eingaben vom Benutzer zu erhalten, wird das Schlüsselwort GIMMEH verwendet. Es ist eine Funktion, die eine beliebige Anzahl von Variablen als Eingabe verwenden kann. Es nimmt YARN als Eingabe und speichert den Wert in einer bestimmten Variablen.
GIMMEH <any_variable>
Beispiel
HAI 1.2
I HAS A VAR ITZ A YARN BTW DECLARE A VARIABLE FOR LATER USE
VISIBLE "TYPE SOMETHING AND ENTER"
GIMMEH VAR BTW GET INPUT (STRING) INTO VARIABLE
VISIBLE VAR
KTHXBYE
Wenn dieser Code ausgeführt wird, werden Sie aufgefordert, eine Nummer einzugeben, und die Nummer wird automatisch in die nächste Zeile zurückgedruckt. Wenn Sie diesen Code ausführen, wird die folgende Ausgabe gedruckt:
sh-
4.3$ lci main.lo
TYPE SOMETHING AND ENTER
67
67
Mit LOLCODE können Sie den Programmfluss durch verschiedene Anweisungen steuern. In diesem Kapitel werden verschiedene Arten von Anweisungen erläutert, die in LOLCODE verfügbar sind.
Ausdrucksanweisungen
Ein Ausdruck ohne Zuordnung, dh einfach das Aufrufen einer mathematischen Operation oder einer Funktion, ist eine rechtliche Aussage in LOLCODE. Sobald der Ausdruck ausgewertet ist, wird sein Endwert in die temporäre Variable IT gestellt. Der Wert der IT bleibt im lokalen Bereich und bleibt bestehen, bis er das nächste Mal durch einen Ausdruck ersetzt wird.
Zuweisungsanweisungen
Zuweisungsanweisungen werden verwendet, um die Ausgabe eines Ausdrucks einer bestimmten Variablen zuzuweisen. Sie haben im Allgemeinen die Form -
<any_variable> <assignment operator> <any expression>
Bitte beachten Sie, dass Sie eine Variable im Ausdruck verwenden können, noch bevor sie zugewiesen wird.
Bedingte Anweisungen
Wenn-Dann-Anweisungen
Die if-then-Anweisung ist eine sehr einfache Operation, die an der IT-Variablen arbeitet. Es ähnelt if-else-Anweisungen in anderen Programmiersprachen wie C und Java.
Es gibt vier Schlüsselwörter, um die if-then-Anweisungen anzuwenden.
- O RLY?
- YA RLY
- KEIN WAI
- OIC
Die allgemeine Form ist -
<any_expression>
O RLY?
YA RLY
<code to execute if above condition is true>
NO WAI
<code to execute in this block>
OIC
Alle obigen Anweisungen können in derselben Zeile geschrieben werden, die durch Kommas wie - getrennt ist.
BOTH SAEM NAMES AN "Name", O RLY?
YA RLY, VISIBLE "My name is ABCD"
NO WAI, VISIBLE "Your name is ABCD"
OIC
Während der Verwendung der if-then-Anweisungen kann ein optionales MEBBE <beliebiger Ausdruck> zwischen den Blöcken YA RLY und NO WAI verwendet werden.
Wenn der <beliebige Ausdruck> nach MEBBE True (WIN) ist, wird dieser Block ausgeführt. Andernfalls wird der Block bis zu den nächsten MEBBE-, NO WAI- oder OIC-Anweisungen übersprungen, wenn dieser Ausdruck falsch ist.
Beispiel
<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
Beispiel
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
Fallaussagen
In LOLCODE das Schlüsselwort 'WTF?' ähnelt dem Umschalten in vielen anderen Sprachen. Das Schlüsselwort WTF? nimmt IT als Ausdruckswert zum Vergleich. Um WTF zu verwenden, wird von OMG ein Vergleichsblock geöffnet, der ein Literal und kein Ausdruck sein sollte.
Bitte denken Sie daran, dass jedes Literal eindeutig sein muss, ähnlich wie in anderen Sprachen.
Der OMG-Block muss durch eine GTFO-Anweisung beendet werden. Wenn ein OMG-Block nicht von einem GTFO beendet wird, wird der nächste OMG-Block ausgeführt, bis GTFO erreicht ist.
Wenn keines der Literale als wahr ausgewertet wird, wird der Standardfall von OMGWTF angegeben.
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
Die Ausgabeergebnisse des obigen Codes sind -
"E":
EFGH
In Programmiersprachen werden Schleifen verwendet, um eine Reihe von Anweisungen mehrmals auszuführen. Wenn Sie beispielsweise die Ziffer 5 fünfmal drucken möchten, anstatt die zu schreibenVISIBLE “5” Anweisung fünfmal können Sie eine Schleife mit Single ausführen VISIBLE “5” Aussage für fünf Mal.
Einfache Schleifen werden mit IM IN YR <Label> und IM OUTTA YR <Label> dargestellt. Auf diese Weise definierte Schleifen sind Endlosschleifen und sollten mit einer GTFO-break-Anweisung beendet werden.
Iterationsschleifen haben die folgende Struktur:
IM IN YR <label> <any_operation> YR <any_variable> [TIL|WILE <expression>]
<code block to execute inside the loop multiple times>
IM OUTTA YR <label>
Bitte beachten Sie, dass innerhalb des Funktionskörpers UPPIN (um eins inkrementieren), NERFIN (um eins dekrementieren) oder eine beliebige unäre Funktion verwendet werden kann.
Das Schlüsselwort TIL berechnet den Ausdruck als TROOF: Wenn er als FAIL ausgewertet wird, wird die Schleife erneut fortgesetzt. Wenn er als WIN ausgewertet wird, stoppt die Schleifenausführung und wird nach der übereinstimmenden IM OUTTA YR-Anweisung fortgesetzt.
Das Schlüsselwort WILE ist das Gegenteil des Schlüsselworts TIL. Wenn der Ausdruck WIN ist, wird die Ausführung fortgesetzt, andernfalls wird die Schleife beendet.
Beispiel
HAI 1.2
I HAS A VAR ITZ 0
IM IN YR LOOPY UPPIN YR VAR TIL BOTH SAEM VAR AN 10
VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOPY
KTHXBYE
Wenn der obige Code auf einem LOLCODE-Compiler oder auf unserem Online-Codierungsgrund kompiliert wird, wird die folgende Ausgabe erzeugt.
sh-
4.3$ lci main.lo
1
2
3
4
5
6
7
8
9
10
Funktionen sind beim Programmieren nützlich, da sie den Zeit- und Arbeitsaufwand für das wiederholte Schreiben des Codes verringern. Ein gut geschriebener Funktionscode bietet eine hohe Wiederverwendbarkeit. In diesem Kapitel erfahren Sie, wie Sie Funktionen in LOLCODE schreiben und damit arbeiten.
Definition einer Funktion
Eine Funktion ist eine Reihe von Anweisungen, die durch Aufrufen dieser Funktion auf einmal ausgeführt werden. In LOLCODE beginnt die Definition einer Funktion mit dem Schlüsselwort „HOW IZ I“ und das abschließende Schlüsselwort lautet „IF U SAY SO“.
Die Syntax zum Schreiben einer Funktion in LOLCODE lautet−
HOW IZ I <function name> [YR <parameter/argument> [AN YR <other _arguments..> …]]
<code block to execute / Set of statements to execute>
IF U SAY SO
Wichtige Punkte
Berücksichtigen Sie beim Definieren einer LOLCODE-Funktion die folgenden wichtigen Punkte:
In LOLCODE kann die Funktion nur eine bestimmte feste Anzahl von Argumenten als Eingabe akzeptieren.
Die Argumente oder Parameter sind die Bezeichner, die zu einer Variablen für die Funktion werden.
Funktionen in LOLCODE können nur auf die als Argumente an sie übergebenen Werte zugreifen.
Wert von einer Funktion zurückgeben
Rückgabe in der Codierung bedeutet etwas, das zurückgegeben wird. Bei der Programmierung kann eine Funktion nach Abschluss der Ausführung einen Wert an das Programm zurückgeben. In LOLCODE geben Funktionen unterschiedliche Werte zurück, wie unten erläutert -
FOUND YR <any_expression> Gibt den Wert des Ausdrucks zurück, wenn der Funktionsblock vollständig ausgeführt wurde.
GTFO Gibt keinen Wert (NOOB) zurück, der ähnlich ist return 0 in anderen Programmiersprachen wie C und Java.
Wenn keine andere return-Anweisung gefunden wird, dann IF U SAY SO wird ausgeführt und der Wert in der IT-Variablen wird zurückgegeben.
Funktionen aufrufen
Eine Funktion wird im Programmkörper definiert und später zur Ausführung aufgerufen. Eine Funktion, die eine bestimmte Anzahl von Argumenten akzeptiert, wird wie folgt aufgerufen:
I IZ <function_name> [YR <expression_One> [AN YR <expression_Two>
[AN YR <expression_Three> ...]]] MKAY
Beim Aufrufen einer Funktion wird der Ausdruck durch den Funktionsnamen gebildet, gefolgt von der Anzahl der Argumente, die die Funktion akzeptiert. Diese Argumente können einfache Variablen oder beliebige Ausdrücke sein. Wenn eine Funktion einen Ausdruck anstelle eines einfachen Werts akzeptiert, werden die Werte der Ausdrücke berechnet, bevor die Funktion aufgerufen wird.
Bitte denken Sie daran, dass die Anzahl der Argumente, die eine Funktion akzeptiert, in der Definition der Funktion definiert werden sollte.
Beispiel
HAI
HOW DUZ I MAINUMBA
I HAS A NUMBA
GIMMEH NUMBA
FOUND YR NUMBA
IF U SAY SO
VISIBLE MAINUMBA
KTHXBYE
Wenn Sie den obigen Code ausführen, werden Sie nach einer Eingabe gefragt. Wenn Sie die Eingabe senden, wird das gleiche Ergebnis angezeigt. Wenn wir beispielsweise 55 eingeben, wird 55 gedruckt.
Beispiel
HAI 1.2
HOW IZ I MULTIPLY YR FIRSTOPERANT AN YR SECONDOPERANT
FOUND YR PRODUKT OF FIRSTOPERANT AN SECONDOPERANT
IF U SAY SO
VISIBLE I IZ MULTIPLY YR 2 AN YR 3
KTHXBYE
Die obige Funktion, die die Multiplikation von Eingabeoperanden ausführt, gibt die folgende Ausgabe aus, wenn Sie sie ausführen
sh-
4.3$ lci main.lo
6
Beispiel
HAI 1.2
I HAS A STRINGARRAY ITZ A BUKKIT
STRINGARRAY HAS A VAR17 ITZ "OBJECT1"
STRINGARRAY HAS A VAR18 ITZ "OBJECT2"
HOW IZ STRINGARRAY ACCESS YR VARIABLE
FOUND YR STRINGARRAY'Z SRS VARIABLE
IF U SAY SO
I HAS A STRING ITZ "VAR17"
VISIBLE STRINGARRAY IZ ACCESS YR STRING MKAY
KTHXBYE
Die Ausgabe, die der obige Code erzeugt, ist -
sh-
4.3$ lci main.lo
OBJECT1
Die Ausnahmebehandlung ist einer der leistungsstarken Mechanismen zur Behandlung von Laufzeitfehlern, damit der normale Ablauf der Anwendung aufrechterhalten werden kann. LOLCODE bietet nicht viel Unterstützung für die Ausnahmebehandlung wie andere Programmiersprachen. Ähnlich wie der Try-Catch-Block in anderen Sprachen hat LOLCODE den PLZ-Block.
Wenn Sie beispielsweise eine Datei öffnen möchten, die möglicherweise vorhanden ist oder nicht, verwenden Sie -
PLZ OPEN FILE "filename.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHX
Der Code, der eine Ausnahme verursachen kann, wird in den PLZ-Block geschrieben, und die Ausnahme wird im O NOES-Block behandelt. Hier sendet das Schlüsselwort INVISIBLE eine innere Nachricht an den Debugger.
Bitte beachten Sie, dass LOLCODE nicht regelmäßig gewartet wird und keine weiteren Updates für die Behandlung von LOLCODE-Ausnahmen und viele andere Funktionen verfügbar sind.
In den vorherigen Kapiteln wurde Ihnen die Programmierung in LOLCODE erläutert. In diesem Kapitel lernen Sie einige Beispiele kennen, mit denen Sie in LOLCODE auf fortgeschrittenem Niveau codieren können.
Beispiel 1: Programm zur Berechnung der Potenz einer Zahl
In diesem Beispiel finden Sie den Code zur Berechnung der Leistung einer Eingangsnummer. Zum Beispiel ist 2 auf Potenz 4 erhöht gleich 16.
HAI 1.2
HOW IZ I POWERTWO YR NUM
BTW RETURN 1 IF 2 TO POWER OF 0
BOTH SAEM NUM AN 0, O RLY?
YA RLY, FOUND YR 1
OIC
BTW CALCULATE 2 TO POWER OF NUM
I HAS A INDEX ITZ 0
I HAS A TOTAL ITZ 1
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX AN NUM
TOTAL R PRODUKT OF TOTAL AN 2
IM OUTTA YR LOOP
FOUND YR TOTAL
IF U SAY SO
BTW OUTPUT: 8
VISIBLE I IZ POWERTWO YR 4 MKAY
KTHXBYE
Der obige Code gibt die folgende Ausgabe aus, sobald er erfolgreich ausgeführt wurde:
sh-
4.3$ lci main.lo
16
Beispiel 2: Programm zum Erstellen eines Arrays
Dieses Beispiel zeigt den Code zum Erstellen eines Arrays mit fünf Elementen und jedem Element mit dem Wert 10.
HAI 1.3
OBTW
CREATES A ONE DIMENSIONAL ARRAY WITH N ELEMENTS, EACH IS A 0
TLDR
HOW IZ I MAKEMATRIX YR N
I HAS A MATRIX ITZ A BUKKIT
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
MATRIX HAS A SRS INDEX ITZ 10
IM OUTTA YR LOOP
FOUND YR MATRIX
IF U SAY SO
I HAS A N ITZ 5
I HAS A MATRIX ITZ A BUKKIT
MATRIX R I IZ MAKEMATRIX YR N MKAY
BTW PRINTS THE CONTENTS OF THE ARRAY
IM IN YR LOOP UPPIN YR INDEX TIL BOTH SAEM INDEX N
VISIBLE MATRIX'Z SRS INDEX
IM OUTTA YR LOOP
KTHXBYE
Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen -
sh-4.3$ lci main.lo
10
10
10
10
10
Beispiel 3: Programm zur Berechnung des Faktors einer Zahl
Dieses Programm zeigt den Code zur Berechnung der Fakultät einer eingegebenen Nummer.
HAI 1.3
HOW IZ I FACTORIAL YR N
BOTH SAEM N AN 0
O RLY?
YA RLY, FOUND YR 1
NO WAI
FOUND YR PRODUKT OF N AN I IZ FACTORIAL YR DIFF OF N AN 1
MKAY
OIC
IF U SAY SO
VISIBLE I IZ FACTORIAL YR 6 MKAY
KTHXBYE
Das obige Programm druckt die Fakultät der Zahl 6 und Sie können die Ausgabe wie unten gezeigt sehen -
sh-
4.3$ lci main.lo
720
Beispiel 4: Programm zum Entwerfen eines Rechners
Sie können einen Taschenrechner entwerfen, um grundlegende mathematische Operationen mithilfe der LOLCODE-Programmierung auszuführen. Beachten Sie den unten angegebenen Code -
HAI 1.2
I HAS A V1
I HAS A V2
I HAS A CHOICE
VISIBLE "VALUE1"
GIMMEH V1
VISIBLE "VALUE2"
GIMMEH V2VISIBLE "Choose Operation? + - * /"
GIMMEH CHOICE CHOICE, WTF?
OMG "+"
VISIBLE SUM OF V1 AN V2
GTFO
OMG "-"
VISIBLE DIFF OF V1 AN V2
GTFO
OMG "*"
VISIBLE PRODUKT OF V1 AN V2
GTFO
OMG "/"
VISIBLE QUOSHUNT OF V1 AN V2
GTFO
OMGWTF
VISIBLE "CHOOSE SOME OPERATION"
OIC
KTHXBYE
Wenn wir das obige Programm mit folgender Eingabe ausführen -
3
4
+
Bei der Ausführung generiert das obige Programm die folgende Ausgabe:
VALUE1
VALUE2
Choose Operation? + - * /
7