Was sind Schleifen?
Georg
- javascript
0 Jens Irrgang0 Jens Irrgang0 a.0 Hannes0 Daniel Thoma
HAllo Ihr Homepagebastler
Ich habe zwar schön öffter in Selfhtml gelesen was ASchleifen sind aber es nie verstanden! Kann es mir bitte jemand auf deutsch erklären? Für was braucht man überhaupt Schleifen?
Mfg Horsch
HAllo Ihr Homepagebastler
Ich habe zwar schön öffter in Selfhtml gelesen was ASchleifen sind aber es nie verstanden! Kann es mir bitte jemand auf deutsch erklären? Für was braucht man überhaupt Schleifen?
Mfg Horsch
Hallo Horsch,
Schleifen sind Befehle, die sich solange wiederholen, bis ein bestimmter definierter Zustand eintritt.
if($x == 6){print "hallo alle"}
else {print "hallo Du";$x++}
Das wäre eine Schleife, welche 6mal hallo Du schreibt, und dann einmal hallo alle.
Benötigt werden diese Schleifen zum Beispiel zum Einlesen von Dateien, damit alle Zeilen eingelesen werden, und nicht nur die Erste.
Ich hoffe etwas Licht in Dein Dunkel gebracht zu haben
Jens
Hi Jens,
if($x == 6){print "hallo alle"}
else {print "hallo Du";$x++}Das wäre eine Schleife, welche 6mal hallo Du schreibt, und dann einmal hallo alle.
nein, das ist eine Bedingung. Eine Schleife würde z.B. so aussehen:
for x=1 to 6
print "Hallo Besucher Nr. " & CStr( x )
next x
Gruß,
Martin
Hallo Martin,
stimmt, war nicht mein Tag gestern ;)
Jens
Schleifen sind Prozeduren, die unendlich oft aufgerufen werden können... (Endlosschleife... und dein Programm lässt sich nicht mehr beenden bis es zu einem speicherüberlauf kommt)
Deshalb benötigen sie eine Abbruchbedingung... (der definierte Zustand)
//if($x == 6){print "hallo alle"}
//else {print "hallo Du";$x++}
//Das wäre eine Schleife, welche 6mal hallo Du schreibt, und dann //einmal hallo alle.
in Jens Beispiel ist die Abbruchbedingung, dass die variable x, die mit x++ kontinuierlich um 1 erhöht wird, den wert 6 erreicht
Hallo Horsch,
"Schleifen" sind was Schönes und man braucht sie zum Verpacken. Und das gilt auch für Programmschleifen. In ihnen werden Anweisungen verpackt, die mehrfach ausgeführt werden sollen. Wenn du zum Beispiel 5 mal unverändert immer die gleiche Anweisung geben möchtest, dann kannst du schreiben:
anweisung
anweisung
anweisung
anweisung
anweisung
Blöd, oder?
Mit einer Schleife geht es etwas kürzer:
for x=1 to 5 do
{
anweisung
}
Zu Beginn steht, wie oft die Schleife durchlaufen werden soll. Nämlich solange, bis die Zählvariable x von 1 bis 5 hochgezählt wurde.
Das Program durchläuft die Schleife und führt die Anweisung aus. Innerhalb der Schleife können komplexe Anweisungen stehen. Diese Anweisungen können von einem Parameter abhängig sein. Zum Beisiel von x selbst. Also:
for x=1 to 5 do
{
zeige: x + 3
}
Wenn es also gelingt ein Problem so zu formulieren, dass entweder identische Schritte wiederholt werden oder wenn die Schritte sich immer auf eine eindeutige Art unterscheiden (naja, bin kein Mathematiker), dann kann so eine
Schleife verwendet werden. Von der genannten Schleifen-Grundstruktur gibt es noch "Abarten" (while-Schleifen). Die genaue Formulierung der Schleifen hängt von der Programmiersprache ab, aber jede Sprache hat diese Schleifen, weil
es einfach extrem viele Einsatzmöglichkeiten für die Dinger gibt.
Ob ich mich klar ausgedrück habe? Sonst frag halt nochmal nach!
Gruß: Hannes
Hallo Horsch
Naja, also da wurde ja teilweise ziemlichh *** zusammengeschrieben.
Zuerst gibt es Bedingte anweisugen sowas wie:
if(x == 1)
{
tu_was();
}
else
{
tu_was_anderes();
}
Zu Deutsch
Wenn x den Wert 1 hat, dann tu_was() sonst tu_was_anderes().
Dann gibt es die schleifen.
1. while-schleife:
var x = 0; //Variablen definition.
while(x < 10)
{
x++;
tu_was();
}
Zu Deutsch
Solange x kleiner als 10 ist, Zähle x eins hoch und tu_was().
2. For-Schleife
for(var x = 0; x < 10; x++)
{
tu_was();
}
Macht genau das selbe, nur etwas anders formuliert.
3. Do-While schleife
var x = 0;
do
{
x++;
tu_was();
}
while(x < 10)
Zu Deutsch
Zähle x ein hoch und tu_was(). Wenn x danach kleiner als 10 ist, fang nochmal von vorne an.
Dann gibt es noch einige befehle um schleifen zu beantworten.
1. break;
break beendet eine schleife.
while(1 == 1)
{
tu_was();
break;
}
diese schleife würde bi in alle ewigkeit tu_was() aufrufen, wenn der break; befel sie nicht beenden würde.
Sinn machen solche breaks nur mit if()-anweisungen zusammen.
2. continue
Fängt wieder beim anfang der schleife an
var x = 0
while(x < 10)
{
x++;
tu_was();
conitnue;
tu_was_anderes();
}
Eigendlich würde diese schleife 10-mal tu_was(); und tu_was_anderes(); ausführen aber continue springt
vor tu_was_anderes(); wieder zum anfang. So wird nur tu_was() 10-mal ausgeführt.
Noch Fragen
Tschüs
Daniel