lieber for() oder while()

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

  • #16
    Ihr seht in der Bedingung ja anscheined immer, dass ein Zähler einen bestimmten Wert erreicht. Dabei ist bei einer while() Schleife soviel mehr möglich. Andererseits lassen sich mit while Scheifen leichter Endlosschleifen produzieren.


    eine for() Schleife ist endlich, der Start und Endpunkt sind klar definiert.
    eine While Schleife ist absolut und als Bedingung ist alles möglich.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #17
      Original geschrieben von Troublegum

      eine for() Schleife ist endlich, der Start und Endpunkt sind klar definiert.
      eine While Schleife ist absolut und als Bedingung ist alles möglich.
      Das stimmt so nicht.
      Diese for Schleife wuerde endlos laufen:

      PHP-Code:
      for ($i=1$i != 10$i += 2) {
            echo 
      $i;

      und siehe mein anderes Post kann man FOR Schleifen auch ohne startpunkt und zaehler laufen lassen... und in der Bedingung sehe ich eine Bedingung also einen boolschen Ausdruck ....

      Kommentar


      • #18
        Original geschrieben von BlobBanana
        Das jedoch eine for Schleife immer mindestens einmal durchlaufen (auch wenn die Bedingung nicht stimmt) wird halte ich fuer ein Geruecht ... denn dieses mini-script erzeugt KEINE ausgabe
        man lässt sich gerne belehren ... jetzt wo du es schreibst, hast du recht. ich habe wohl die FOR und DO-WHILE verwechselt.

        bei beiden WHILE-typen war es zumindest so ...
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #19
          Original geschrieben von BlobBanana
          Da kann man aber auch rumtricksen wenn man for benutzen will ... zum Beispiel fuer ein binaers BenutzerRechteSystem:

          PHP-Code:
          $userRights = array("LEVEL1"   => 0,   // 1
                                           
          "LEVEL2"   => 0,  // 2
                                           
          "LEVEL3" => 0// 4
                                          
          "LEVEL4" => 0,  // 8
                                          
          "LEVEL5" => 0);  // 16  

          $rights 25;   // fuer level 1,4 und 5

          for ($i 1$i <=16$i *= 2) {
              if ( (
          $rights $i) == $i) {
                  
          $userRights[key($userRights)] = 1;
              }
              
          next($userRights);

          Mit While waere das auch nciht einfacher ...
          finde ich doch :
          PHP-Code:
          $userRights = array("LEVEL1" => 0// 1
              
          "LEVEL2" => 0// 2
              
          "LEVEL3" => 0// 4
              
          "LEVEL4" => 0// 8
              
          "LEVEL5" => 0); // 16  
          $rights 25// fuer level 1,4 und 5
          $i=0;
          while(
          $rights>>$i)
              
          $userRights['LEVEL'.($i+1)]=($rights>>$i++)%2
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #20
            Original geschrieben von TBT
            finde ich doch :
            PHP-Code:
            $userRights = array("LEVEL1" => 0// 1
                
            "LEVEL2" => 0// 2
                
            "LEVEL3" => 0// 4
                
            "LEVEL4" => 0// 8
                
            "LEVEL5" => 0); // 16  
            $rights 25// fuer level 1,4 und 5
            $i=0;
            while(
            $rights>>$i)
                
            $userRights['LEVEL'.($i+1)]=($rights>>$i++)%2
            Ah ... sehr schoen .... werd ich gleich mal implementieren ... thnx

            Kommentar


            • #21
              und so kann man sich noch die Initialisierung sparen
              PHP-Code:
              $rights 25// fuer level 1,4 und 5
              $i=0;
              while(
              $i<5)
                  
              $userRights['LEVEL'.($i+1)]=($rights>>$i++)%2
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #22
                Anscheinend ist hier jeder was anderes gewohnt.

                Aber gut zu wissen, dass die Unterschiede nicht allzu grawierend sind.

                Kommentar

                Lädt...
                X