While vs for



  • DeathcubeUK schrieb:

    Im Jahr 2015 schon mal was von Strukturierter Programmierung gehört? 😉

    Die ist seit August 2002 als veraltet zu betrachten und sollte nicht mehr gelehrt werden.

    Tatsächlich ist sie im C++-Umfeld zum Teil hinderlich und führt zu pascaloidem Gekröse.



  • blurry333 schrieb:

    ich stelle hier mal eine vage Behauptung auf. Meiner Meinung nach ist die while Schleife mehr ein Übel als eine Hilfe. Gerade Anfänger werden dadurch verwirrt.

    Warum? C und C++ wurden nicht für Programmierer entworfen, die nicht in der Lage sind, sich ordentliche Lehrbücher zu kaufen oder diese zu verstehen. Wer darauf keinen Bock hat, muss halt Java lernen oder das Programmieren anderen überlassen.



  • volkard schrieb:

    Tatsächlich ist sie im C++-Umfeld zum Teil hinderlich und führt zu pascaloidem Gekröse.

    Volkard!? Jetzt sei doch mal ehrlich!? Das Committee hätte mit C++11/C11 endlich die Möglichkeit gehabt, solch desaströs veraltete und künstliche Konstrukte wie Schleifen endlich aus der Sprache zu verbannen! Aber nein, was machen sie? Sie führen ein noch grausigeres for-each konstrukt ein??



  • Swordfish schrieb:

    volkard schrieb:

    Tatsächlich ist sie im C++-Umfeld zum Teil hinderlich und führt zu pascaloidem Gekröse.

    Volkard!? Jetzt sei doch mal ehrlich!? Das Committee hätte mit C++11/C11 endlich die Möglichkeit gehabt, solch desaströs veraltete und künstliche Konstrukte wie Schleifen endlich aus der Sprache zu verbannen! Aber nein, was machen sie? Sie führen ein noch grausigeres for-each konstrukt ein??

    Schleifen sind gut. Andere Sachen der Strukturierten Programmierung sind müllig.

    http://en.wikipedia.org/wiki/Structured_programming#Early_exit
    Early Exits sind aber heute streng zu bevorzugen.

    http://en.wikipedia.org/wiki/Structured_programming#Exception_handling
    *lach*
    Die hatten was im Tee.



  • Ja, eben. Das ganze gedöhns hätt man sich mit vernünftig platzierten goto s sparen können ... genauso wie diese sinnfreien Schleifen 💡

    //edit: Noch dazu könnt' man sich mit goto die blöde Fragerei sparen, ob da alle Typen RAII sind oder nicht ...

    volkard schrieb:

    Die hatten was im Tee.

    *eeeek* was meinst Du damit? Will auch?! ... aber ich mag keinen Tee 🙄



  • int i = 10;
    
    	do 
    	{
    	} while ( --i );
    

    ->

    int i = 10;
    
    start:
    	if( --i )
    		goto start;
    


  • Nein, ich sehe hier kein Problem. For nutzt man, wenn Du inetwa sagen kannst für jedes, while nutzt Du bei solange oder während.

    Für Klingonen ist das vielleicht verwirrend.

    Mfg Martin



  • DeathcubeUK schrieb:

    blurry333 schrieb:

    Jaa aber warum 2 kopfgesteuerte Schleifen wenn es auch eine tut 🙂

    Ja, mit einer** for -Schleife kannst Du eine while -Schleife emulieren, indem Du den Initialisierungsteil und den Anweisungsteil der for **-Anweisung leer lässt.

    ...

    Außerdem: Mit** while kannst Du auch eine do...while -Schleife erzeugen. Und das kannst Du nicht mit for **emulieren...

    Das ist ein Widerspruch. Wenn Du mit for auch while kannst und Du mit while auch do-while kannst, dann kannst Du mit for auch do-while.

    Mfg Martin



  • ich kann mit for auch do ... while !?



  • Swordfish schrieb:

    ich kann mit for auch do ... while !?

    for( bool first=true; first || <xxx>; first=false );
    


  • mgaeckler schrieb:

    Das ist ein Widerspruch. Wenn Du mit for auch while kannst und Du mit while auch do-while kannst, dann kannst Du mit for auch do-while.

    Mfg Martin

    Nur wenn die Relation "kannst" transitiv ist, alter. 💡



  • LOL, Respekt für blurry333.
    Er hat euch schon wieder dermaßen getrollt, daß ihr seitenweise drüber diskutiert. Owned.

    Ich hoffe es war trolling und nicht ernst gemeint. Bei ihm kann man sich nicht immer so ganz sicher sein, wo der Fehler im biologischen OS liegt. Heisst nicht, dass ich mir nicht schon meine eigene Meinung über ihn gemacht hätte.



  • EOP schrieb:

    Er hat euch schon wieder dermaßen getrollt, daß ihr seitenweise drüber diskutiert. Owned.

    Keine einzige meiner Aussagen in diesem Thread war ernstgemeint. Ich brauch wohl ein Shirt mit dem Aufdruck "just trollin with" ...



  • Swordfish schrieb:

    Keine einzige meiner Aussagen in diesem Thread war ernstgemeint.

    Kommt mir irgendwie bekannt vor. :p



  • EOP schrieb:

    int i = 10;
    
    	do 
    	{
    	} while ( --i );
    

    ->

    int i = 10;
    
    start:
    	if( --i )
    		goto start;
    

    So ist es.
    Die do-Schleife ist nur eine Schreibvereinfachung für einen bedingten Aufwärtssprung.
    Die while-Schleife ist nur eine Schreibvereinfachung für das sehr oft vorkommende if(x) do cmd; while(x).
    Die for-Schleife ist nur eine Schreibvereinfachung für das verdammt oft vorkommende init;while(x){cmd;inc;}.
    Die Schreibvereinfachungen gegen einem irgendwann in Fleisch und Blut über und man vergißt das if-goto, was es eigentlich ist. Man darf das goto vergessen, kein Problem. Man darf es auch benutzen, kein Problem.


Anmelden zum Antworten