Skip to content

Commit

Permalink
control flow -> Kontrollfluss; control flow statement -> Kontrollanwe…
Browse files Browse the repository at this point in the history
…isung
  • Loading branch information
Ragnar-F committed Feb 26, 2021
1 parent 5a42a93 commit a0fcc50
Show file tree
Hide file tree
Showing 21 changed files with 58 additions and 58 deletions.
2 changes: 1 addition & 1 deletion AHKL_ChangeLog.htm
Expand Up @@ -442,7 +442,7 @@ <h2 id="v1.1.22.09">1.1.22.09 - 11. November 2015</h2>
</ul>

<h2 id="v1.1.22.08">1.1.22.08 - 11. November 2015</h2>
<p>Behoben: Die For-Schleife wird die Ablaufsteuerung nun korrekt übergeben, wenn _NewEnum/Next eine Ausnahme auslöst.</p>
<p>Behoben: Die For-Schleife wird die Kontrolle nun korrekt übergeben, wenn _NewEnum/Next eine Ausnahme auslöst.</p>
<p>Behoben: Finally wird die bevorstehende Ausnahme nun hinauszuzögern, bis dessen Block ausgewertet wurde, nicht nur bis zum Aufruf der ersten internen Funktion.</p>
<p>Behoben: Erkennung von ungültigen Sprüngen aus Finally-Blöcken beim Laden des Skripts (fehlerhaft seit v1.1.20).</p>

Expand Down
2 changes: 1 addition & 1 deletion AHKL_Features.htm
Expand Up @@ -15,7 +15,7 @@
<p>Dieses Dokument beschreibt Features, die in den AutoHotkey_L-Entwicklungszweig von AutoHotkey hinzugefügt wurden, der mittlerweile als "AutoHotkey 1.1" bekannt ist.</p>
<p class="warning"><strong>Vorsicht:</strong> Dieses Dokument wurde in den letzten Jahren vernachlässigt und könnte daher einige der neueren Änderungen nicht enthalten.</p>

<h2 id="flow">Ablaufsteuerung</h2>
<h2 id="flow">Kontrollfluss</h2>
<table class="info">
<tr><td><a href="commands/Break.htm">Break <i>LoopLabel</i></a></td><td>Unterbricht von einer inneren Schleife heraus eine äußere Schleife.</td></tr>
<tr><td><a href="commands/Continue.htm">Continue <i>LoopLabel</i></a></td><td>Überspringt von einer inneren Schleife heraus den aktuellen Durchlauf der äußeren Schleife.</td></tr>
Expand Down
12 changes: 6 additions & 6 deletions Concepts.htm
Expand Up @@ -33,7 +33,7 @@ <h2 id="toc">Inhaltsverzeichnis</h2>
<li><a href="#caching">Caching</a></li>
</ul></li>
<li><a href="#functions">Funktionen/Befehle</a></li>
<li><a href="#control-flow">Ablaufsteuerung</a></li>
<li><a href="#control-flow">Kontrollfluss</a></li>
<li><a href="#details">Details</a>
<ul>
<li><a href="#string-encoding">Zeichenkettencodierung</a></li>
Expand Down Expand Up @@ -206,23 +206,23 @@ <h2 id="functions">Funktionen/Befehle</h2>
<h3 id="methods">Methoden</h3>
<p><em>Methoden</em> sind Funktionen, die sich auf ein bestimmtes <a href="#objects">Objekt</a> auswirken. Während es nur eine Funktion mit dem Namen <code>Send</code> (zum Beispiel) geben kann, kann es genauso viele Methoden mit dem Namen <code>Send</code> geben, wie es Objekte gibt, da jedes Objekt (oder Klasse von Objekten) unterschiedlich reagieren kann. Aus diesem Grund wird das Zielobjekt (das eine Variable oder ein Teilausdruck sein kann) nicht innerhalb der Parameterliste, sondern auf der linken Seite des Methodennamens angegeben. Weitere Informationen finden Sie unter <a href="#object-protocol">Objektorientierte Schnittstelle</a>.</p>

<h2 id="control-flow">Ablaufsteuerung</h2>
<p>Die <em>Ablaufsteuerung</em> ist die Reihenfolge, in der die einzelnen Anweisungen ausgeführt werden. Im Normalfall werden Anweisungen der Reihe nach von oben nach unten ausgeführt, allerdings kann dieses Verhalten mit einer Ablaufsteuerungsanweisung überschrieben werden, indem man Anweisungen z. B. wiederholt ausführen lässt, oder wenn eine bestimmte Bedingung erfüllt ist.</p>
<h2 id="control-flow">Kontrollfluss</h2>
<p>Der <em>Kontrollfluss</em> ist die Reihenfolge, in der die einzelnen Anweisungen ausgeführt werden. Im Normalfall werden Anweisungen der Reihe nach von oben nach unten ausgeführt, allerdings kann dieses Verhalten mit einer Kontrollanweisung überschrieben werden, indem man Anweisungen z. B. wiederholt ausführen lässt, oder wenn eine bestimmte Bedingung erfüllt ist.</p>
<dl>
<dt id="statement">Anweisung</dt>
<dd><p>Eine <em>Anweisung</em> ist einfach gesagt das kleinste eigenständige Element der Sprache, das eine ausführende Aktion ausdrückt. In AutoHotkey sind Anweisungen Befehle, Zuweisungen, Funktionsaufrufe und andere Ausdrücke. Direktiven, Label (einschließlich Hotkeys und Hotstrings) und Deklarationen ohne Zuweisungen sind hingegen keine Anweisungen; sie werden verarbeitet, sobald das Programm startet und bevor das Skript <em>ausgeführt</em> wird.</p></dd>
<dt id="execute">Ausführen</dt>
<dd><p>Ausführen, Durchführen, Auswerten, Umsetzen und so weiter. <em>Ausführen</em> hat grundsätzlich die gleiche Bedeutung wie im normalen Sprachgebrauch.</p></dd>
<dt id="cf-body">Körper</dt>
<dd><p>Der <em>Körper</em> einer Ablaufsteuerungsanweisung ist die Anweisung oder Anweisungsgruppe, zu der sie gehört. Zum Beispiel wird der Körper einer <a href="Language.htm#if-statement">if-Anweisung</a> nur ausgeführt, wenn eine bestimmte Bedingung erfüllt ist.</p></dd>
<dd><p>Der <em>Körper</em> einer Kontrollanweisung ist die Anweisung oder Anweisungsgruppe, zu der sie gehört. Zum Beispiel wird der Körper einer <a href="Language.htm#if-statement">if-Anweisung</a> nur ausgeführt, wenn eine bestimmte Bedingung erfüllt ist.</p></dd>
</dl>
<p>Schauen Sie sich zum Beispiel die folgenden Instruktionen an:</p>
<ol>
<li>Öffne Notepad</li>
<li>Warte, bis Notepad auf dem Bildschirm erscheint</li>
<li>Schreibe "Hallo, Welt!"</li>
</ol>
<p>Wir machen einen Schritt nach dem anderen, und wenn dieser Schritt beendet ist, gehen wir zum nächsten Schritt über. Auf die gleiche Weise funktioniert üblicherweise die Ablaufsteuerung in einem Programm oder Skript - sie geht die Anweisungen schrittweise durch. Aber was ist, wenn wir etwas in ein vorhandenes Notepad-Fenster schreiben wollen? Schauen Sie sich die folgenden überarbeiteten Instruktionen an:</p>
<p>Wir machen einen Schritt nach dem anderen, und wenn dieser Schritt beendet ist, gehen wir zum nächsten Schritt über. Auf die gleiche Weise funktioniert üblicherweise der Kontrollfluss in einem Programm oder Skript - er geht die Anweisungen schrittweise durch. Aber was ist, wenn wir etwas in ein vorhandenes Notepad-Fenster schreiben wollen? Schauen Sie sich die folgenden überarbeiteten Instruktionen an:</p>
<ol>
<li>Wenn Notepad nicht läuft:
<ol>
Expand All @@ -249,7 +249,7 @@ <h2 id="control-flow">Ablaufsteuerung</h2>
Send Hallo`, Welt!
</pre>
<p>In unseren schriftlichen Instruktionen haben wir Einrückungen und Nummerierungen verwendet, um die Anweisungen zu gruppieren. Skripte funktionieren etwas anders. Obwohl die Einrückung den Code besser lesbar macht, hat sie in AutoHotkey keinen Einfluss auf die Gruppierung von Anweisungen. Stattdessen werden Anweisungen gruppiert, indem man sie, wie oben gezeigt, mit geschweiften Klammern umschließt. Dies wird als <a href="commands/Block.htm"><em>Block</em></a> bezeichnet.</p>
<p class="note">Details zur Syntax - also wie man Ablaufsteuerungsanweisungen in AutoHotkey schreibt oder erkennt - finden Sie unter <a href="Language.htm#control-flow">Ablaufsteuerung</a>.</p>
<p class="note">Details zur Syntax - also wie man Kontrollanweisungen in AutoHotkey schreibt oder erkennt - finden Sie unter <a href="Language.htm#control-flow">Kontrollfluss</a>.</p>

<h2 id="details">Details</h2>

Expand Down
2 changes: 1 addition & 1 deletion Functions.htm
Expand Up @@ -244,7 +244,7 @@ <h3 id="More_about_locals_and_globals">Mehr über lokale und globale Variablen</
<p>Mehrere Variablen können mithilfe eines Kommas auf derselben Zeile deklariert werden. Zum Beispiel:</p>
<pre>global LogDateiName, MaxVersuche := 5
static GesamtVersuche := 0, VorherErgebnis</pre>
<p id="DeclareInit"><span class="ver">[v1.0.46+]</span>: Es ist möglich, eine lokale oder globale Variable bei ihrer Deklaration zu initialisieren. Fügen Sie einfach auf der rechten Seite des Variablennamens den Operator <code>:=</code> oder <code>=</code> und einen beliebigen <a href="Variables.htm#Expressions">Ausdruck</a> an (der <code>=</code>-Operator verhält sich in Deklarationen genauso wie <code>:=</code>). Im Gegensatz zu <a href="#InitStatic">statischen Initialisierungen</a> werden die Initialisierungen von lokalen oder globalen Variablen bei jedem Funktionsaufruf ausgeführt, aber nur, wenn die Ablaufsteuerung sie tatsächlich erreicht. Eine Zeile wie <code>local x := 0</code> hätte also den gleichen Effekt wie, als würde man zwei einzelne Zeilen schreiben: <code>local x</code>, gefolgt von <code>x := 0</code>.</p>
<p id="DeclareInit"><span class="ver">[v1.0.46+]</span>: Es ist möglich, eine lokale oder globale Variable bei ihrer Deklaration zu initialisieren. Fügen Sie einfach auf der rechten Seite des Variablennamens den Operator <code>:=</code> oder <code>=</code> und einen beliebigen <a href="Variables.htm#Expressions">Ausdruck</a> an (der <code>=</code>-Operator verhält sich in Deklarationen genauso wie <code>:=</code>). Im Gegensatz zu <a href="#InitStatic">statischen Initialisierungen</a> werden die Initialisierungen von lokalen oder globalen Variablen bei jedem Funktionsaufruf ausgeführt, aber nur, wenn der Kontrollfluss sie tatsächlich erreicht. Eine Zeile wie <code>local x := 0</code> hätte also den gleichen Effekt wie, als würde man zwei einzelne Zeilen schreiben: <code>local x</code>, gefolgt von <code>x := 0</code>.</p>
<p>Da die Wörter <em>local</em>, <em>global</em> und <em>static</em> unmittelbar beim Starten des Skripts verarbeitet werden, kann eine Variable nicht mithilfe einer <a href="commands/IfExpression.htm">IF-Anweisung</a> deklariert werden. Das heißt, dass eine Deklaration innerhalb eines IF- oder ELSE-<a href="commands/Block.htm">Blocks</a> auf alle Zeilen zwischen der Deklaration und der geschweiften Endklammer der Funktion eine Auswirkung hat. Beachten Sie zudem, dass es zurzeit nicht möglich ist, eine dynamische Variable zu deklarieren, wie z. B. <code>global Array%i%</code>.</p>
<p id="PseudoArrays">Befehle, die <a href="misc/Arrays.htm">Pseudo-Arrays</a> erzeugen (z. B. <a href="commands/StringSplit.htm">StringSplit</a>), erstellen standardmäßig lokale Variablen, solange der <a href="#AssumeGlobal">Assume-Global-Modus</a> nicht aktiv ist oder das erste Pseudo-Array-Element als lokale Variable deklariert wurde (dies trifft auch zu, wenn einer der Funktionsparameter übergeben wurde -- sogar wenn es ein <a href="#ByRef">ByRef</a>-Parameter ist -- weil Parameter immer lokal sind). Umgekehrt wird ein globales Array erzeugt, wenn das erste Element <a href="#Global">global deklariert</a> wurde. Beachten Sie, dass hierbei der unten erwähnte <i>Häufige Anlass zu Verwirrung</i> berücksichtigt werden muss. Das erste erzeugte Element von <a href="commands/StringSplit.htm">StringSplit</a> ist ArrayName0. Das erste erzeugte Element von anderen array-erstellenden Befehlen wie <a href="commands/WinGet.htm">WinGet List</a> ist ArrayName (also ohne Nummer). <span class="ver">[v1.1.27+]:</span> Wenn der <a href="#ForceLocal">Force-Local-Modus</a> aktiv ist, folgen diese Befehle den gleichen Regeln wie normale Variablenreferenzen; das heißt, dass jedes Pseudo-Array-Element, das nicht als global deklariert ist, lokal sein wird, auch wenn andere Elemente als global deklariert sind.</p>
<p id="DynVar"><span id="Dynamic"></span>Innerhalb einer Funktion (sofern der <a href="#ForceLocal">Force-Local-Modus</a> nicht aktiv ist) wird jede dynamische Variablenreferenz wie <code>Array%i%</code> in eine lokale Variable aufgelöst, es sei denn, es existiert keine Variable mit diesem Namen, dann wird eine globale Variable verwendet, sofern vorhanden. Wenn weder eine lokale noch globale Variable vorhanden ist und die Nutzung erfordert, dass die Variable erstellt sein muss, wird sie als lokale Variable erstellt, solange der <a href="#AssumeGlobal">Assume-Global-Modus</a> nicht aktiv ist. Eine Funktion kann ein globales <a href="misc/Arrays.htm">Array</a> demzufolge nur erstellen (z. B. via <code>Array%i% := A_Index</code>), wenn der <a href="#AssumeGlobal">Assume-Global-Modus</a> aktiv ist.</p>
Expand Down

0 comments on commit a0fcc50

Please sign in to comment.