Georg: Was sind Schleifen?

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

  1. 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

  2. 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

    1. 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

      1. Hallo Martin,

        stimmt, war nicht mein Tag gestern ;)

        Jens

  3. 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

  4. 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

  5. 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