007
31.03.2003, 17:29 Uhr
BeS
|
Zitat: |
~0xdeadbeef postete Echt jetzt? Ich nehm for-Schleifen, wenn man den Schleifenverlauf sinnvoll in Anfangsbedingung, Endbedingung und Schritte unterscheiden kann. Das Beispiel von dirweis ist schlechter Programmierstil, weil es unnötig Rechenzeit frißt, durch den Aufruf von strlen in jedem Durchlauf. Es kann zwar sein, dass ein sehr intelligenter Compiler das merkt, aber verlassen kann man sich darauf nicht.
|
ok, ich habe jetzt nicht so sehr auf die Rechenzeit geachtet. Aber bei der Schleifenwahl bleibe ich dabei. Du sagst es ja selber "wenn man den Schleifenverlauf sinnvoll in Anfangsbedingung, Endbedingung und Schritte unterscheiden kann". In diesem Fall kannst du aber nicht von Anfang an das Schleifenende vorhersagen, deswegen musste ~dirweis auch die break Anweisung verwenden. Imho unschön weil ich da die for-Schleife Zweck entfremde, ich definiere erst das sie von 'a'-'c' laufen soll und mitten im Schleifenrumpf fällt mir dann ein das ich doch schon bei 'b' aussteigen will.
Das mit der Rechenzeit lässt sich ja lösen. Entweder ich bestimme am Anfang die länge:
C++: |
lng=strlen(str);
while(ch != str[ i ] && i<lng) i++;
if(str[ i ]==ch) printf("%c gefunden: %d \n", ch, i); else printf("%c nicht gefunden!\n", ch);
|
oder ich nütze das \0 aus:
C++: |
while(str[ i ] != ch && str[ i ] != '\0') i++;
if(str[ i ]==ch) printf("%c gefunden: %d \n", ch, i); else printf("%c nicht gefunden!\n", ch);
|
-- If art interprets our dreams, the computer execute them in the guise of programs! Dieser Post wurde am 31.03.2003 um 17:30 Uhr von BeS editiert. |