Bücher online kostenlos Kostenlos Online Lesen
Die Programmiersprache Ruby (German Edition)

Die Programmiersprache Ruby (German Edition)

Titel: Die Programmiersprache Ruby (German Edition) Kostenlos Bücher Online Lesen
Autoren: David Flanagan , Yukihiro Matsumoto
Vom Netzwerk:
(Schreibweise egal) ...
    break # ... Ende der Schleife
else # Andernfalls ...
    puts line.reverse # ... Benutzereingabe umkehren und ausgeben
end
end
    Mit einer
when
-Klausel kann mehr als ein Ausdruck verknüpft sein. Mehrere Ausdrücke werden durch Komma getrennt, und der Operator
===
wird für jeden von ihnen aufgerufen. Das heißt, es ist möglich, denselben Codeblock mit mehr als einem Wert einzuleiten:
def hasValue?(x) # Eine Methode namens hasValue? definieren
case x # Mehrweg-Fallentscheidung für x
when nil, [], "", 0 # if nil===x || []===x || ""===x || 0===x then
    false # Methodenrückgabewert ist false
else # Andernfalls
    true # Methodenrückgabewert ist true
end
end
    5.1.5 Der Operator ?:
    Der Fallentscheidungs-Operator
?:
, der bereits früher in „4.6.10 Bedingungsprüfung: ?:“ beschrieben wurde, verhält sich ähnlich wie eine
if
-Anweisung, in der
?
das
then
und
:
das
else
ersetzt. Er stellt eine kurz gefasste Möglichkeit dar, Fallentscheidungen auszudrücken:
def how_many_messages(n) # Singular/Plural beachten
"Sie haben " + n.to_s + (n==1 ? " Nachricht." : " Nachrichten.")
end
    ----
    case im Vergleich zu switch
    Java-Programmierer und andere, die an eine von C abstammende Sprachsyntax gewöhnt sind, sind mit der Mehrweg-Fallentscheidungsanweisung
switch
vertraut, die Rubys
case
-Anweisung ähnelt. Es gibt allerdings eine Anzahl von Unterschieden:
    In Java und verwandten Sprachen lautet der Name der Anweisung
switch
, und ihre Klauseln werden mit
case
und
default
bezeichnet. Ruby verwendet
case
als Namen der Anweisung und
when
und
else
für die Klauseln.
Die
switch
-Anweisung der anderen Sprachen übergibt einfach die Kontrolle an den Start des passenden
case
. Von dort aus geht die Kontrolle weiter, und sie kann zu anderen Fällen »durchgereicht« werden, bis sie das Ende der
switch
-Anweisung erreicht oder auf eine
break
- oder
return
-Anweisung trifft. Dieses Duchreichverhalten ermöglicht mehreren
case
-Klauseln, sich auf denselben Codeblock zu beziehen. In Ruby wird dieselbe Aufgabe dadurch gelöst, dass mit jeder
when
-Klausel mehrere durch Komma getrennte Ausdrücke verknüpft sein dürfen. Rubys
case
-Anweisung erlaubt kein Durchreichen.
In Java und den meisten compilierten Sprachen mit C-ähnlicher Syntax müssen die mit jedem
case
-Label verknüpften Ausdrücke Compilerzeit-Konstanten sein und keine beliebigen Laufzeitausdrücke. Das erlaubt dem Compiler oft, die
switch
-Anweisung mithilfe einer sehr schnellen Lookup-Tabelle zu implementieren. Für Rubys
case
-Anweisung gibt es keine derartige Einschränkung, und ihre Performance entspricht der einer
if
-Anweisung mit wiederholten
elsif
-Klauseln.
    ----

5.2 Schleifen
    Dieser Abschnitt dokumentiert Rubys einfache Schleifenanweisungen:
while
,
until
und
for
. Ruby bietet auch die Möglichkeit, eigene Schleifenkonstrukte zu definieren, die als Iteratoren bekannt sind. Iteratoren (siehe „5.3 Iteratoren und Aufzählungsobjekte“ ) werden wahrscheinlich häufiger eingesetzt als Rubys eingebaute Schleifenanweisungen; sie werden weiter unten in diesem Kapitel dokumentiert.
    5.2.1 while und until
    Rubys grundlegende Schleifenanweisungen sind
while
und
until
. Sie führen einen Codebereich aus, solange (»while«) eine Bedingung zutrifft beziehungsweise bis (»until«) die Bedingung zutrifft, zum Beispiel:
x = 10 # Schleifenzählervariable initialisieren
while x >= 0 do # Schleife, solange x größer als oder gleich 0 ist
puts x # Den Wert von x ausgeben
x = x - 1 # 1 von x abziehen
end # Die Schleife endet hier

# Mit einer until-Schleife wieder vorwärts bis 10 zählen
x = 0 # Bei 0 (statt bei −1) starten
until x > 10 do # Schleife, bis x größer als 10 ist
puts x
x = x + 1
end # Schleife endet hier
    Die Schleifenbedingung ist der Boolesche Ausdruck, der zwischen den Schlüsselwörtern
while
oder
until
und
do
steht. Der Schleifenrumpf ist der Ruby-Code, der zwischen den Schlüsselwörtern
do
und
end
steht. Die
while
-Schleife wertet ihre Bedingung aus. Wenn der Wert irgendetwas anderes als
false
oder
nil
ist, führt sie ihren Rumpf aus und kehrt danach zum Anfang zurück, um ihre Bedingung erneut zu prüfen. Auf diese Weise wird der Rumpf wiederholt ausgeführt, null- oder mehrmals, solange die Bedingung
true
(oder strenger ausgedrückt nicht-
false
und nicht-
nil
) bleibt.
    Die
until
-Schleife ist die Umkehrung. Die Bedingung wird geprüft, und der Rumpf wird ausgeführt, wenn die Bedingung
false
oder
nil
ergibt. Das

Weitere Kostenlose Bücher