Noob Fragen (3)
-
Nun wenn man mit beiden loops dasselbe Problem lösen kann warum gibt es dann 2 verschiedene?
Merkst du keinen Unterschied zwischen den Code-Schnipseln in deinem Post?
Der mit der
for
-Schleife ist kürzer und (laut allgemeiner Meinung) lesbarer. Das wars auch schon - Lesbarkeit. Es geht darum drei Dinge, die sehr oft in der gleichen Form vorkommen (Initialisierung, Abbruchbedingung, Inkrement) zusammenzufassen, damit der Code nicht durch solche für das Leserauge unnötigen Zeilen vollgemüllt wird.
-
Zählschleifen werden gewöhnlich für Iterationen über Daten genutzt, denn dort weisst du ja von vornerein, dass du den Schleifenrumpf n-mal ausführen willst.
Bei While-Schleifen wartest du quasi dadrauf, dass deine Bedingung irgendwann mal erfüllt wird.
Und wenn wir uns mal die Theoretiker Brille anziehen, dann ist es so, dass die For-Schleife immer terminiert (zu einem Ende kommt), was bei einer While-Schleife nicht der Fall sein muss (Stichwort: Berechenbarkeit mit LOOP- und WHILE-Programmen).
-
Spiele beispielsweise verwenden meist
// Pseudocode game = true; while(game) { /* updateWorld(), ... */ if(userHitsEscape()) game = false; }
um ein Spiel unabhängig vom Userinput laufen zu lassen. Mit For-Schleife würde das ziemlich eigenartig aussehen
-
Das war jetzt ein Beispiel für eine do-while-Schleife.
-
DirkB schrieb:
Das war jetzt ein Beispiel für eine do-while-Schleife.
Und die künstliche Variable game könnte weg.
-
Skym0sh0 schrieb:
Und wenn wir uns mal die Theoretiker Brille anziehen, dann ist es so, dass die For-Schleife immer terminiert (zu einem Ende kommt)
och, es gibt durchaus Möglichkeiten, eine for-Schleife unendlich lange laufen zu lassen
-
Upps, stimmt. Ist noch früh :>...
-
daddy_felix schrieb:
Skym0sh0 schrieb:
Und wenn wir uns mal die Theoretiker Brille anziehen, dann ist es so, dass die For-Schleife immer terminiert (zu einem Ende kommt)
och, es gibt durchaus Möglichkeiten, eine for-Schleife unendlich lange laufen zu lassen
Ja? Gibt es die ?
Dann zeig mir mal ein LOOP-Berechenbares Programm, welches nicht terminiert...
Wenn dus schaffst kriegsten Turing-Award, und das nicht von mir.
-
Skym0sh0 schrieb:
daddy_felix schrieb:
Skym0sh0 schrieb:
Und wenn wir uns mal die Theoretiker Brille anziehen, dann ist es so, dass die For-Schleife immer terminiert (zu einem Ende kommt)
och, es gibt durchaus Möglichkeiten, eine for-Schleife unendlich lange laufen zu lassen
Ja? Gibt es die ?
Dann zeig mir mal ein For-Berechenbares Programm, welches nicht terminiert...for(;;) { cout << "Loop"; }
-
Ok, du weist nicht wovon ich spreche.
Ich muss mich selbst verbessern, ich hab LOOP-Programme als For-Programme bezeichnet. -.-
-
Skym0sh0 schrieb:
Ich muss mich selbst verbessern, ich hab LOOP-Programme als For-Programme bezeichnet. -.-
genau genommen hast du die Dinger als for-Schleifen bezeichnet... Bei der Bezeichnung "For-berechenbares Programm" dachte ich mir schon, dass wir da aneinander vorbeireden
-
Ja -.-
Shit, mein Fehler. Sorry, Kollege...