Das Kefk Network Wiki befindet sich im Testbetrieb.
While-Schleife
Aus Kefk.
In den meisten Programmiersprachen gibt es die While-Schleife als Kontrollstruktur. Sie dient dazu, eine Abfolge von Anweisungen mehrfach auszuführen, solange eine Bedingung erfüllt ist. Diese Bedingung wird geprüft, bevor die Anweisungsfolge abgearbeitet wird. Es kann also auch sein, dass die Abfolge gar nicht ausgeführt wird. Wenn die Bedingung ständig erfüllt ist, dann wird die Schleife zur Endlosschleife. Wenn deutsche Befehlsworte gewählt werden, dann heißt die While-Schleife meist Solange-Schleife.
Neben der gebräuchlicheren anfangsprüfenden gibt es in vielen Sprachen auch die endprüfende While-Schleife (Do-while-Schleife). Mit dieser lässt sich die mindestens einmalige Ausführung des eingeschlossenen Code-Blocks erzwingen.
Die While-Schleife verwendet man normalerweise bei dynamischen Abbruchbedingungen, die For-Schleife meistens, wenn man vorher definiert wie viele Durchläufe die Schleife hat. Zum Beispiel würde man für die Berechnung der Fakultät einer Zahl vorzugsweise die For-Schleife anwenden. Analog zu anderen Schleifenkonstrukten bieten viele Sprachen die Möglichkeit, eine While-Schleife per explizitem Befehl, d. h. ohne weitere Prüfung, zu verlassen (Break-Befehl).
While-Schleifen spielen auch in der theoretischen Informatik im Teilgebiet der Berechenbarkeitstheorie eine Rolle, siehe WHILE-Programm.
Inhaltsverzeichnis |
Beispiele
Berechnung der Fakultät (vgl. For-Schleife)
In Basic (hier: Visual Basic)
Dim Fakultaet As Long
Dim Zähler As Long
Fakultaet = 1
Zähler = 5
Do While Zähler > 0
Fakultaet = Fakultaet * Zaehler
Zähler = Zähler - 1
Loop
Msgbox Fakultaet 'gib das Resultat als Dialogbox aus
gruß jawed
In Lua
i = 1 zaehler = 5 while zaehler > 0 do i = i*zaehler zaehler = zaehler-1 end
do-while gibt es in LUA nicht, dafür repeat-until
In Pascal (Delphi)
Program Fakultas;
var
Zaehler : Integer; // Laufvariable 2..Fakultaet;
Fakultaet: LongInt; // Ergebnisvariable
begin
Fakultaet := 1; // Startwert setzen
Zaehler := 5;
While Zaehler > 1 do // Durchläuft 5, 4, 3, 2
Begin
Fakultaet := Fakultaet * Zaehler; // multipliziere Fakultät mit Zaehler, 4, .., 2
Zaehler := Zaehler - 1;
End;
writeln(Fakultaet); // Ausgabe der berechneten Fakultät
end.
In C
#include <stdio.h>
int main(void)
{
int zaehler=5, fakultaet=1;
while(zaehler > 1)
fakultaet *= zaehler--;
printf("%d\n", fakultaet);
return 0;
}
In Tcl (Tool command language)
set zaehler 5
set fakultaet 1
while {$zaehler > 0} {
set fakultaet [expr $fakultaet * $zaehler ]
incr zaehler -1
}
puts $fakultaet
In PHP
$zaehler=5;
$fakultaet=1;
while ($zaehler > 1) {
$fakultaet*=$zaehler;
$zaehler--;
}
echo $fakultaet;
In Perl
$zaehler=5;
$fakultaet=1;
while ($zaehler > 1) {
$fakultaet*=$zaehler;
$zaehler--;
}
print $fakultaet;
In JavaScript
var zaehler=5;
var fakultaet=1;
while (zaehler > 1) {
fakultaet=fakultaet * zaehler;
zaehler--;
}
window.alert(fakultaet);
In Java
public int fakultaet(int zaehler)
{
int fakultaet=1;
while (zaehler > 1) {
fakultaet*=zaehler;
zaehler--;
}
return fakultaet;
}
In MSL mIRC Scripting Language (Internet Relay Chat Client)
var %fakultaet = 1, %zaehler 5
while (%fakultaet <= %zaehler) {
echo -a %fakultaet
inc %fakultaet
}
Siehe auch
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort While-Schleife, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
