coolblue: Umfrage: Schleifenprogrammierung mit Counter

Hallo,

mich würde mal tierisch interessieren, wie Ihr alle so Eure Schleifen programmiert, ganz besonders in Bezug auf die Namen der Counter.

Mein 1. Beispiel:

-------------------------------

for($cta=0 ; ... ; $cta++) {
   for($ctb=0 ; ... ; $ctb++) {
      for($ctc=0 ; ... ; $ctc++) {
         for($ctd=0 ; ... ; $ctd++) {
            for($cte=0 ; ... ; $cte++) {
               print "hallo welt\n";
            }
         }
      }
   }
}

-------------------------------

Dieses Beispiel war ja noch recht simple und übersichtlich.
Aber wie es zum Beipsiel aussehen kann, wenn die Counter einen sinngemäßen Namen haben sollen...

hier mein 2. Beispiel:

-------------------------------

open(DATEI_1,"</.../datei_1");
open(DATEI_2,"</.../datei_2");
open(DATEI_3,"</.../datei_3");
open(DATEI_4,"</.../datei_4");

for($datei_1 ; <@datei_1> ; $datei_1++) {
   for($datei_2 ; <@datei_2> ; $datei_2++) {
      for($datei_3 ; <@datei_3> ; $datei_3++) {
         for($datei_4 ; <@datei_4> ; $datei_4++) {
             print "hallo welt\n";
         }
      }
   }
}

close DATEI_1;
close DATEI_2;
close DATEI_3;
close DATEI_4;

-------------------------------

Das war ja auch noch recht simple. Aber wie es aussehen kann, wenn eine untere Schleife nach Erfüllung einer bestimmten Bedingung die obere übernehmen soll...

hier mein 3. Beispiel:

Die Stellen, an denen es sehr unübersichtlich werden kann, habe ich mit einem <?> gekennzeichnet.

-------------------------------

open(DATEI_1,"</.../datei_1");
open(DATEI_2,"</.../datei_2");
open(DATEI_3,"</.../datei_3");
open(DATEI_4,"</.../datei_4");

for($datei_1 ; <@datei_1> ; $datei_1++) {
   if($datei_1[$datei_1] eq "...") {
      for($datei_<?> ; <@datei_1> ; $datei_<?>++) {
         for($datei_2 ; <@datei_2> ; $datei_2++) {
            for($datei_3 ; <@datei_3> ; $datei_3++) {
               for($datei_4 ; <@datei_4> ; $datei_4++) {
                  print "hallo welt\n";
               }
            }
         }
      }
   }
}

close DATEI_1;
close DATEI_2;
close DATEI_3;
close DATEI_4;

-------------------------------

Ich könnte das Rad so weiterspinnen, in dem ich noch mehrere untere Schleifen einbaue, um es noch schwerer für's Auge zu machen.

Meine Frage nun: welchen Namen gebt Ihr den Countern in Euren Programmen, vor allem, wenn die Schleifen über tausende von Zeilen laufen und alles sehr schnell unübersichtlich werden kann?

Nutzt Ihr Zahlen oder Buchstaben wie zum Beipiel $ct1, $ct2, $cta, $ctb oder lieber sinngemäße Namen wie $datei_1 und $datei_2 ?

Welche Struktur haltet Ihr am übersichtlichsten?

Gruß,
coolblue

--
never say oops after you submitted a job :-)
  1. Sorry... ganz vergessen!

    Für alle die es nicht wissen: die Beispiele sind in Perl dargestellt, allerdings interessiert mich Eure Meinung sprachenunabhängig :-)

    Gruß,
    coolblue

    --
    never say oops after you submitted a job :-)
  2. Hi,

    mich würde mal tierisch interessieren, wie Ihr alle so Eure Schleifen programmiert, ganz besonders in Bezug auf die Namen der Counter.

    Für eine Anzahl gleichartiger Variablen bieten sich arrays an
    (wenn die verwendete Sprache keine dynamische Elementanzahl in arrays erlaubt - wie es bei Java der Fall ist - dann eben eine entsprechende dynamische Variante, wenn die Anzahl vorher nicht bekannt ist - bei Java also Vector oder ähnliches).
    Damit wird nur noch ein Name pro Variablensorte benötigt (der natürlich möglichst sprechend sein sollte).

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. hi Andreas

      Für eine Anzahl gleichartiger Variablen bieten sich arrays an

      hast du ein 15 Zeilen Beispiel für mich? :-)

      Gruß,
      coolblue

      --
      never say oops after you submitted a job :-)
  3. Huhu coolblue

    Meine Frage nun: welchen Namen gebt Ihr den Countern in Euren Programmen, vor allem, wenn die Schleifen über tausende von Zeilen laufen und alles sehr schnell unübersichtlich werden kann?

    Die nenne ich i.d.R. $i, $j, $k oder $n und Schleifen über "tausende" von
    Zeilen habe ich nie.

    Das Problem dürfte nicht die Benennung der Zähler sein, sondern anscheinend
    stimmt etwas mit dem Programm nicht.
    Mehr als 3-4 ineinander geschachtelte Schleifen sollte man eigentlich nie benötigen.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. halli hallo

      Mehr als 3-4 ineinander geschachtelte Schleifen sollte man eigentlich nie benötigen.

      nun ja, es gibt einzelne "Progrämmchen", in denen das wohl nicht benötigt wird. aber gibt auch "Programme", die ganz anders aussehen können :-)

      ich musste schon des öfteren ein paar tausend Zeilen schreiben und dann kann es mal schon vorkommen, dass die Schleifen doch schon eine Tiefe von 5-6 weiteren hatten.

      Gruß,
      coolblue

      --
      never say oops after you submitted a job :-)
      1. Hallo kühlblau,

        ich musste schon des öfteren ein paar tausend Zeilen schreiben und dann kann es mal schon vorkommen, dass die Schleifen doch schon eine Tiefe von 5-6 weiteren hatten.

        meist bietet sich in solchen Fällen aber eher eine rekursive Funktion an. Besonders, wenn die Tiefe nicht bekannt ist.

        Gruß, Andreas

        --
        SELFFORUM - hier werden Sie geholfen,
        auch in Fragen zu richtiges Deutsch
      2. Hallo coolblue,

        Wenn Du Schleifen 6-fach verschachtelst und in den Schleifen mehrere 1000 Zeilen Code hast, liegt das nicht an der Art der Programme sondern an einem schlechte Programmierstil.
        Sowas sollte man dringend in mehrere Funktionen/Prozeduren zerlegen. Dann bleibt das ganze auch übersichtlich.

        Grüße

        Daniel

  4. Hallo,

    mich würde mal tierisch interessieren, wie Ihr alle so Eure Schleifen programmiert, ganz besonders in Bezug auf die Namen der Counter.

    also variablen für counter in schlefen benenn ich grundsätzlich i,j,k,l usw.
    ich denke das eine gute kommentierung auch viel zur übersichtlichkeit, bzw zum verständniss beitragen kann.