Skyrim:Statement Reference: Unterschied zwischen den Versionen
Keris (Diskussion | Beiträge) K |
Keris (Diskussion | Beiträge) K (Textersetzung - „tesscript>“ durch „papyrusscript>“) |
||
Zeile 6: | Zeile 6: | ||
=== Beispiele === | === Beispiele === | ||
− | < | + | <papyrusscript> |
; Erzeugt eine Integer-Variable mit Namen var, die mit dem voreingestellten Wert 0 beginnt | ; Erzeugt eine Integer-Variable mit Namen var, die mit dem voreingestellten Wert 0 beginnt | ||
int var | int var | ||
− | </ | + | </papyrusscript> |
<br> | <br> | ||
− | < | + | <papyrusscript> |
; Erzeugt eine Float-Variable mit Namen seconds, die mit dem angegebenen Wert beginnt | ; Erzeugt eine Float-Variable mit Namen seconds, die mit dem angegebenen Wert beginnt | ||
float seconds = CurrentTimeInMinutes() * 60.0f | float seconds = CurrentTimeInMinutes() * 60.0f | ||
− | </ | + | </papyrusscript> |
== Assign-Statement == | == Assign-Statement == | ||
Zeile 29: | Zeile 29: | ||
=== Beispiele === | === Beispiele === | ||
− | < | + | <papyrusscript> |
; Zuweisung von 5 an x | ; Zuweisung von 5 an x | ||
x = 5 | x = 5 | ||
Zeile 38: | Zeile 38: | ||
; Diese Zuweisung ist gleichbedeutend mit x = x * (5 + 5) | ; Diese Zuweisung ist gleichbedeutend mit x = x * (5 + 5) | ||
x *= 5 + 5 | x *= 5 + 5 | ||
− | </ | + | </papyrusscript> |
<br> | <br> | ||
− | < | + | <papyrusscript> |
; Die Property wird mit dem berechneten Wert inkrementiert | ; Die Property wird mit dem berechneten Wert inkrementiert | ||
MyObject.MyProperty += CoolFunction() * 10 | MyObject.MyProperty += CoolFunction() * 10 | ||
− | </ | + | </papyrusscript> |
== Return-Statement == | == Return-Statement == | ||
Zeile 51: | Zeile 51: | ||
=== Beispiele === | === Beispiele === | ||
− | < | + | <papyrusscript> |
; Unter der Annahmen dass der Return-Typ int ist, wird der Wert an den Aufrufer zurück gegeben. | ; Unter der Annahmen dass der Return-Typ int ist, wird der Wert an den Aufrufer zurück gegeben. | ||
Return 5 | Return 5 | ||
− | </ | + | </papyrusscript> |
<br> | <br> | ||
− | < | + | <papyrusscript> |
; Kehre sofort zurück, nichts wird zurück gegeben | ; Kehre sofort zurück, nichts wird zurück gegeben | ||
Return | Return | ||
x = 5 ; Dies läuft nie, da die Ausführung nach dem Return schon außerhalb der Funktion weiter geht. | x = 5 ; Dies läuft nie, da die Ausführung nach dem Return schon außerhalb der Funktion weiter geht. | ||
− | </ | + | </papyrusscript> |
== If Statement == | == If Statement == | ||
Zeile 74: | Zeile 74: | ||
=== Beispiele === | === Beispiele === | ||
− | < | + | <papyrusscript> |
; Wenn value true ist, wird x auf 1 gesetzt, andernfalls passiert nichts. | ; Wenn value true ist, wird x auf 1 gesetzt, andernfalls passiert nichts. | ||
if (value) | if (value) | ||
x = 1 | x = 1 | ||
endIf | endIf | ||
− | </ | + | </papyrusscript> |
<br> | <br> | ||
− | < | + | <papyrusscript> |
; Wenn myCoolValue 20 ist, wird x auf 5 gesetzt, andernfalls wird x auf 10 gesetzt | ; Wenn myCoolValue 20 ist, wird x auf 5 gesetzt, andernfalls wird x auf 10 gesetzt | ||
if (myCoolValue == 20) | if (myCoolValue == 20) | ||
Zeile 88: | Zeile 88: | ||
x = 10 | x = 10 | ||
endIf | endIf | ||
− | </ | + | </papyrusscript> |
<br> | <br> | ||
− | < | + | <papyrusscript> |
; Wenn value größer als 10 ist, wird x auf 1 gesetzt, to 1, wenn es kleiner als 10 ist wird x auf -1 gesetzt, andernfalls wird x auf 0 gesetzt. | ; Wenn value größer als 10 ist, wird x auf 1 gesetzt, to 1, wenn es kleiner als 10 ist wird x auf -1 gesetzt, andernfalls wird x auf 0 gesetzt. | ||
if (value > 10) | if (value > 10) | ||
Zeile 99: | Zeile 99: | ||
x = 0 | x = 0 | ||
endIf | endIf | ||
− | </ | + | </papyrusscript> |
== While Statement == | == While Statement == | ||
Zeile 108: | Zeile 108: | ||
=== Beispiele === | === Beispiele === | ||
− | < | + | <papyrusscript> |
; Schleife bis x 10 ist | ; Schleife bis x 10 ist | ||
x = 0 | x = 0 | ||
Zeile 115: | Zeile 115: | ||
x += 1 | x += 1 | ||
endWhile | endWhile | ||
− | </ | + | </papyrusscript> |
Aktuelle Version vom 13. August 2012, 13:00 Uhr
Ein Statement, eine Anweisung, ist ein Arrangement von Ausdrücken mit denen Arbeit durchgeführt wird (und kann ein einfacher Ausdruck sein). Es gibt auch einige kompliziertere Statements wie "if" und "while".
Inhaltsverzeichnis
Define-Statement
<define statement> ::= <type> <identifier> ['=' <expression>]
Ein Define-Statement definiert eine einzelne Variable und initialisiert sie optional mit einem Wert. Wenn kein Wert angegeben ist, beginnt sie mit dem voreingestellten Wert. Eine Variable, die in einem If- oder While-Block definiert ist, gerät nicht in Konflikt mit einer Variable, die in einem anderen If- oder While-Block definiert ist, der nicht Child oder Parent des definierenden Blocks ist.
Beispiele
<papyrusscript>
- Erzeugt eine Integer-Variable mit Namen var, die mit dem voreingestellten Wert 0 beginnt
int var
</papyrusscript>
<papyrusscript>
- Erzeugt eine Float-Variable mit Namen seconds, die mit dem angegebenen Wert beginnt
float seconds = CurrentTimeInMinutes() * 60.0f </papyrusscript>
Assign-Statement
<assign statement> ::= (<l-value> '=' <expression>) | (<l-value> '+=' <expression>) | (<l-value> '-=' <expression>) | (<l-value> '*=' <expression>) | (<l-value> '/=' <expression>) | (<l-value> '%=' <expression>) <l-value> ::= ([<expression> '.'] <identifier>) (<expression> '[' <expression> ']')
Ein Assign-Statement (oder Zuweisungs-Statement) berechnet das Ergebnis des Ausdrucks. Entweder wird das Ergebnis dem l-value zugewiesen oder der l-value wird mit dem Resultat modifiziert.
Beispiele
<papyrusscript>
- Zuweisung von 5 an x
x = 5
- Diese Zuweisung ist gleichbedeutend mit x = x + 5
x += 5
- Diese Zuweisung ist gleichbedeutend mit x = x * (5 + 5)
x *= 5 + 5
</papyrusscript>
<papyrusscript>
- Die Property wird mit dem berechneten Wert inkrementiert
MyObject.MyProperty += CoolFunction() * 10 </papyrusscript>
Return-Statement
'Return' [<expression>]
Das Return-Statement stoppt den Ablauf in der Funktion sofort, bestimmt das Ergebnis des Ausdrucks (wenn es einen gibt) und gibt ihn an den Aufrufer zurück. Der Typ des Ausdrucks im Return-Statement muss dem Typ des Rückgabewertes der Funktion entsprechen. Wenn die Funktion keinen Rückgabetypen hat, ist ein Return-Statement ohne Ausdruck zu verwenden. Wenn eine Funktion mit einem Return-Typen ohne ein Return-Statement beendet wird, wird None zurück gegeben (und es wird eine Warnung vom Spiel ausgedruckt, falls None nicht dem Return-Typen zugewiesen werden darf)
Beispiele
<papyrusscript>
- Unter der Annahmen dass der Return-Typ int ist, wird der Wert an den Aufrufer zurück gegeben.
Return 5
</papyrusscript>
<papyrusscript>
- Kehre sofort zurück, nichts wird zurück gegeben
Return x = 5 ; Dies läuft nie, da die Ausführung nach dem Return schon außerhalb der Funktion weiter geht. </papyrusscript>
If Statement
<if statement> ::= 'if' <expression> <statement>* ['elseif' <expression> <statement>*]* ['else' <statement>*] 'endIf'
Das If-Statement bestimmt den Wert seines Ausdruckes und arbeitet die Statements darunter bis zu einem "elseif", "else" oder "endif" ab, wenn er true ist. Wenn das Ergebnis des Ausdruckes false ist, wird runter gesprungen. Dabei wird ein folgendes "elseif" (sofern vorhanden) auf die gleiche Art ausgewertet und behandelt. Wird ein "else" gefunden, werden die folgenden Statements ausgeführt. Ein "endif" beendet den If-Block. An jedem gefundenen "elseif" wird dessen Ausdruck ausgewertet und falls er wahr ist, die Anweisungen darunter ausgeführt. Ist der Ausdruck false, wird zum nächsten "elseif", "else" oder "endIf" gesprungen.
Beispiele
<papyrusscript>
- Wenn value true ist, wird x auf 1 gesetzt, andernfalls passiert nichts.
if (value)
x = 1
endIf
</papyrusscript>
<papyrusscript>
- Wenn myCoolValue 20 ist, wird x auf 5 gesetzt, andernfalls wird x auf 10 gesetzt
if (myCoolValue == 20)
x = 5
else
x = 10
endIf
</papyrusscript>
<papyrusscript>
- Wenn value größer als 10 ist, wird x auf 1 gesetzt, to 1, wenn es kleiner als 10 ist wird x auf -1 gesetzt, andernfalls wird x auf 0 gesetzt.
if (value > 10)
x = 1
elseif (value < 10)
x = -1
else
x = 0
endIf </papyrusscript>
While Statement
'while' <expression> <statement>* 'endWhile'
Das While-Statement ist eine Schleife, die die Anweisungen innerhalb solange wiederholt, bis der Ausdruck false ist.
Beispiele
<papyrusscript>
- Schleife bis x 10 ist
x = 0 while (x < 10)
DoCoolStuff() x += 1
endWhile </papyrusscript>
Links
- Statement Reference (das englische Original des obigen Artikels)