Umfrage: Schleifenprogrammierung mit Counter
coolblue
- programmiertechnik
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
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
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
hi Andreas
Für eine Anzahl gleichartiger Variablen bieten sich arrays an
hast du ein 15 Zeilen Beispiel für mich? :-)
Gruß,
coolblue
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
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
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
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
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.