Ankündigung

Einklappen
Keine Ankündigung bisher.

Schleifen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schleifen

    Ich bin Lehrer und bereite gerade ein Projekt "PHP" für meine Schüler vor. Ich habe keine Verständnisschwierigkeiten was PHP betrifft. Trotzdem habe ich eine Frage:

    Wozu verwendet man while- und for-Schleifen? Kann mir jemand ein leicht zu verstehendes Praxisbeispiel anhand eines Zweizeilers nennen? Bitte kein Programmcode, den kriege ich hin.

    Danke!

  • #2
    Hi.

    Schau mal hier:

    http://www.computerhartware.de/threa...erschiede.html

    While Schleife nimmst Du, wenn die Anzahl der Durchläufe unbekannt ist (z.B. bei der Ausgabe von Werten aus der Datenbank) und For Schleifen besitzen dagegen einen Initialisierungs- und Aktualisierungsteil und die Anzahl ist bekannt (mal sehr vereinfacht)

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Sorry, aber wenn für dich Syntax und Code leicht verständlich und problemlos umsetzbar sind, sollte es für dich umso leichter sein, die For & While-Schleifen auf ein Praxisbeispiel zu abstrahieren.

      Kommentar


      • #4
        Zitat von pauker03 Beitrag anzeigen
        Ich habe keine Verständnisschwierigkeiten was PHP betrifft.
        Wozu verwendet man while- und for-Schleifen?
        Und das soll jetzt zusammen passen, und kein Widerspruch sein ...?
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          http://www.php.de/php-einsteiger/489...nsammlung.html
          [MAN]for[/MAN]
          [MAN]while[/MAN]

          Praxisaufgaben?
          Eine kurze Beschreibung einer Aufgabe, die dann mit der jeweiligen Schleife gelöst werden soll? Oder hab ich das Falsch verstanden?

          Kommentar


          • #6
            WHILE:
            ->While Schleife zählt Zahlen hoch. Soll solange laufen bis Zahl = 100.

            FOR:
            ->Von 0-50 Zählen lassen und die Zahlen untereinander ausgeben lassen.

            Leichte Übung

            Kommentar


            • #7
              http://de.wikipedia.org/wiki/Schleif...grammierung%29
              [URL]http://hallophp.de[/URL]

              Kommentar


              • #8
                While:
                Im Schleifenkopf wird eine Abbruchbedingung definiert.
                Innerhalb der Schleife muss diese Abbruchbedingung händisch gesetzt werden, sofern es sich nicht um automatisch eintretende Ereignisse (end of file, letzte Zeile einer Selektion) handelt.

                For:
                Gleich im Schleifenkopf wird festgesetzt, wie oft die Schleife durchlaufen werden soll und der Schleifenzähler bestimmt. Auf diesen kann man in der Schleife zugreifen.
                [PHP]if ($var != 0) {
                $var = 0;
                }[/PHP]

                Kommentar


                • #9
                  Man kann jede Schleifenart durch eine andere Schleifenart ersetzen.
                  PHP-Code:
                  // while($x !== false)
                  for($x true $x !== false ; ) {
                    
                  // mach was
                    
                  $x stelleFestObsWeiterGeht();
                  }

                  // for ($i = 0; $i < 5; $i++) 
                  $i 0;
                  while( 
                  $i 5) {
                    
                  // mach was
                    
                  $i++;

                  for-Schleifen bieten sich bei bekannter Anzahl der Durchläufe an, weil im Schleifenkopf sowohl temporäre Variablen angelegt & modifiziert werden können, als auch die Abbruchbedingung überprüft wird.

                  while (Kopfgesteuert) und do-while (Fußgesteuert) überprüfen nur die Abbruchbedingung, eventuell benötigte Variablen dafür muss man gesondert deklarieren. Der Unterschied zwischen Kopf- und Fußgesteuerter Schleifen ist, das die Fußgesteuerte Schleife mindestens ein mal durchlaufen wird (prüft die Bedingung erst am Fuß der Schleife, nach dem Durchlauf)
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Oder anders formuliert, beide Schleifen laufen so lange, bis die Laufbedingung nicht mehr erfüllt ist.

                    while- und for-Schleifen kann man deshalb i.a.R. beliebig gegeneinander austauschen, wenn man den Code etwas umstellt.

                    Beispiele:
                    PHP-Code:
                    for($i=0$i<10$i++) {
                      
                    // ...
                    }
                    // ist analog zu
                    $i 0;
                    while(
                    $i<10) {
                      
                    // ...
                      
                    $i++;
                    }


                    while(
                    $datensatz mysql_fetch_assoc($queryErgebnis) {
                      
                    // ...
                    }
                    // ist analog zu
                    for( ; $datensatz mysql_fetch_assoc($queryErgebnis); ) {
                      
                    // ...

                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar


                    • #11
                      PHP-Code:

                      // kopfgesteuerte Schleifen

                      [Intialisierung]
                      while ([
                      negierte Abbruchbedingung]) {
                        [
                      Schleifenoperation]

                        
                      // Schleifenrumpf
                      }

                      [
                      Intialisierung]
                      while (
                      true) {
                        [
                      Schleifenoperation]
                        if ([
                      Abbruchbedingung]) break;

                        
                      // Schleifenrumpf
                      }

                      for ([
                      Intialisierung] ; [negierte Abbruchbedingung] ; [Schleifenoperation]) {
                        
                      // Schleifenrumpf
                      }


                      // fußgesteuerte Schleifen

                      [Intialisierung]
                      do {
                        [
                      Schleifenoperation]

                        
                      // Schleifenrumpf
                      }
                      while ([
                      negierte Abbruchbedingung]);


                      [
                      Intialisierung]
                      while (
                      true) {
                        [
                      Schleifenoperation]

                        
                      // Schleifenrumpf
                        
                        
                      if ([Abbruchbedingung]) break;
                      }


                      [
                      Intialisierung]
                      looptop:

                      [
                      Schleifenoperation]

                      // Schleifenrumpf

                      if ([negierte Abbruchbedingung]) goto looptop
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Einsatz in vier Wänden, heute wird hier aufgeräumt. Den Müll habe ich dort ausgeleert: Biologisches Kurzzeitexperiment: wie viel Müll passt in einen Thread

                        Hier geht's ab sofort zivilisiert weiter.
                        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                        Kommentar


                        • #13
                          Das meine Frage Häme auslösen würde, damit habe ich gerechnet. Man kennt ja die Vorurteile gegenüber Lehrern: faul, dauernd Urlaub, keine Ahnung, Teilzeitarbeiter..... Mich stört das nicht. Mich amüsiert das eher. Vorallem weil die meisten Kritiker nicht wissen, worüber Sie reden, z. B. schon mal das Wort "Lehrermangel" gehört? Bandit 100, wenn Du Dich für ausreichende qualifizierte Lehrer einsetzen willst, dann hast Du meine Unterstützung. Nur bin ich der falsche Ansprechpartner. Wende Dich an die Regierung. Die bestimmt, wieviel Geld und für Lehrer und deren Fortbildung ausgegeben wird.

                          Zu meiner Person:

                          Ich arbeite als Lehrer in Schule in einem sozialen Brennpunkt, wie man das neudeutsch nennt. Diese sozialen Brennpunkte gibt es in vielen deutschen Städten, mal mit mehr oder weniger Feuer.

                          Informatik ist nicht mein Fachgebiet. Ich mache diese Kurse, um den Schülern eine Perspektive zu geben, sie zu begeistern und Ihnen Erfolgserlebnisse zu verschaffen, abseits vom Schulalltag. Angefangen habe ich mit einem HTML-Kurs. Dann habe ich den Schülern CSS beigebracht. Und jetzt, weil mich Schüler darauf angesprochen haben, plane ich ab Mitte Oktober ein PHP Grundkurs. Ich mache diese Kurse außerhalb meiner Arbeitszeit, ohne Bezahlung.

                          Bei diesen Kursen geht es nicht nur um PHP, sondern auch um Teamarbeit, soziale Kompetenzen..... und darum zu erkennen, dass man sein Leben ein Stück weit selbst durch eigenes Lernen in die Hand nehmen kann. Das ist viel wichtiger, als der PHP-Experte zu werden. Denn wenn man es schafft, die Kiddies zu begeistern, regt man Ihre Eigenaktivitäten an, was dazu geführt hat, das die Kiddies eigene Websites über Ihr Hobby, Ihren Lieblingspopstar oder Ihren Sportverein erstellen und ganz stolz sind, was sie geschaffen haben, deswegen am Ball bleiben und Ihre Webseiten eigenständig weiterentwickeln.

                          Meine Schüler wissen, dass ich keine IT-Experte bin, sondern die Kurse aus freien Stücken, just for fun mache. Trotzdem muss ich mir keine Teilnehmer zusammensuchen.

                          In meiner Frage ging es darum zu erfahren, für welche praktischen Lösungen eine while- oder for-Schleife eingesetzt wird.

                          Beispiel: Um den Einsatz von Variablen, Operatoren und Bedingungen nachvollziehbar anzuwenden, bietet sich für mich ein Bestellvorgang an, in dem ich Rechenoperationen einfügen kann, ebenso If-Anweisungen, um Mengenrabatte zu berechnen oder anteilige Versandkosten, ausgehend vom Gewicht, zu ermitteln. Ganz nebenbei kann dabei gleich auch noch eine Einheit kaufmännisches Rechnen eingebunden werden.

                          Also, wenn jemand einen erhellenden Hinweis hat, für welche praktische Lösung Schleifen eingesetzt werden, würde ich mich freuen.

                          Und wenn nicht, solls auch gut sein. Ich kann damit leben.

                          Kommentar


                          • #14
                            Das Wesen einer Schleife ist die Wiederholung. Wenn du zum Beispiel zu faul bist, händisch von 1-10 zu zählen, nutze eine Schleife.
                            PHP-Code:
                            for ($i 1$i <= 10; ++$i) {
                              echo 
                            $i;

                            Besonders häufig werden Schleifen eingesetzt, um Arrays der Reihe nach auszulesen.
                            PHP-Code:
                            $array = array(
                              
                            'test',
                              
                            'foo',
                              
                            'bar',
                            );

                            for (
                            $i 0$x count($array); $i $x; ++$i) {
                              echo 
                            $array[$i];

                            [URL]http://hallophp.de[/URL]

                            Kommentar


                            • #15
                              Auslesen einer CSV-Datei und Verarbeitung der Ergebnisse.
                              PHP-Code:
                              $filename 'artikel.csv';
                              $z 0;
                              $fp fopen$filename"r" );
                              while (
                              $teile fgetcsv($fp1024,";")) {
                                  
                              $z++;
                                  if ( 
                              $z == ) continue; // Überschriftzeile ignorieren

                                  
                              $artnum    $teile[0];
                                  
                              $preis     $teile[1];
                                  
                              $menge     $teile[2];

                                  
                              // Machwas mit diesem Artikel
                              }

                              echo 
                              'Fertsch!'
                              [PHP]if ($var != 0) {
                              $var = 0;
                              }[/PHP]

                              Kommentar

                              Lädt...
                              X