<- Conditionals
Gute Porgrammiertechniken ->

While-Schleifen

Nun da Sie mit Konditionalen umgehen können, ist es Zeit für eine andere Art von Schleife: Die while-Schleife.

Diese Art von Schleife ist mächtiger als die, die Sie bisher gesehen haben. Aber es benötigt das Wissen um die Konditionale. Das Grundgerüst sieht so aus:


while Bedingung
   ...
end
                       

Wobei Bedingung ein Konditional ist, wie Sie es im letzten Abschnitt gesehen haben.

Zählung

Hier ein einfaches Beispiel:

Gehen wir das Programm durch:

  1. Setze den zaehler auf 0
  2. Wenn zaehler < 10 gehen wir in die Schleife.
  3. Innerhalb der Schleife geben wir die Text aus und addieren 1 zu zaehler hinzu. Nun ist zaehler 1.
  4. Wenn zaehler< 10 wiederholen wir die Anweisungen in der Schleife.
  5. ...

Das geht so weiter bis zaehler 10 ist. Die Ausgabe dieser Schleife ist somit:

In anderen Worten, eine while-Schleife wird wiederholt, solange die Bedingung wahr ist. Daher der Name while.

Potenz von 2

Es gibt Dinge, die sehr einfach mit while-Schleifen zu realisieren sind, aber sehr schwer mit 'n.times'.

Wir möchten die höchste Potenz von 2 wissen, die kleiner als 10000 ist. Das ist mit einer while-Schleife einfach:

Stellen Sie sich vor, wie schwer dies zu realisieren wäre mit 'n.times'.

Übungen

  1. Schreiben Sie das letzte Programm um, so dass der Computer nach der maximalen Zahl fragt und die entsprechende Potenz von 2 ausgibt.

  2. Starten Sie das obige Programm und geben Sie 1e10 ein. Was passiert?

    Wenn Sie die Methode String#to_i benutzt haben, besteht die Chance, dass "1e10" in 1 konvertiert wurde. Versuchen wir dies in irb raus zu finden.

    Sie sehen 1e10 ist eine Fließkommazahl (Floats). Deshalb müssen Sie String#to_f stattdessen benutzen.

<- Bedingungen
Gute Programmiertechniken ->