Kann mir jemand die Reihenfolge erklären bei der for Schleife?
Ist es so das es bei i=1 anfängt und dann prüft ob i kleiner als n ist und dann geht es runter zu Console.Write und dann nach oben wieder zu i+=1 und dann zu ungeradeZahl+=2 und dann wieder an den Anfang vom Ganzen?
2 Antworten
Die erste Anweisung im Schleifenkopf (Initialisierung/Startanweisung) wird ausgeführt, sobald der Programmfluss das erste Mal auf das Schleifenkonstrukt trifft.
Die zweite Anweisung (Bedingung) wird ausgeführt, bevor der Programmfluss in den Schleifenkörper springt. Wenn die Bedingung nicht zutrifft, wird der Schleifenkörper komplett übersprungen. Nach jedem Durchlauf durch den Schleifenkörper springt das Programm wieder zur Bedingung im Schleifenkopf. Es sei denn, es gibt einen return- oder break-Befehl im Schleifenkörper.
Die dritte Anweisung wird nach Ausführung des Schleifenkörpers durchgeführt. Wenn der Programmfluss nicht in den Schleifenkörper springt, da die Bedingung nicht zutrifft, wird auch die dritte Anweisung ignoriert.
Um das noch einmal zu veranschaulichen, zeige ich folgend die einzelnen Schritte für den obigen Algorithmus unter der Annahme, dass n den Wert 3 hat:
n = 3
ungeradeZahl = 1
i = 1 (Startanweisung)
i <= n => wahr (1 <= 3)
Ausgabestring: "1, "
ungeradeZahl = ungeradeZahl + 2 = 3
i = i + 1 = 2
i <= n => wahr (2 <= 3)
Ausgabestring: "3, "
ungeradeZahl = ungeradeZahl + 2 = 5
i = i + 1 = 3
i <= n => wahr (3 <= 3)
Ausgabestring: "5, "
ungeradeZahl = ungeradeZahl + 2 = 7
i = i + 1 = 4
i <= n => unwahr
Das Endresultat auf der Konsole wäre somit dieser String:
"1, 3, 5 "
Der letzte Wert von i ist 4, die Variable ändert sich nicht noch einmal. Da sie im Schleifenkopf initialsiert wurde, ist sie nur im Schleifenkonstrukt bekannt und wird, sobald der Programmfluss das Konstrukt passiert hat, wieder aus dem Speicher gelöscht.
Nein, mal abgesehen wieso Leute mit her schleifen mit I=1 und nicht I=0 beginnen.
Zuerst wird der schleifen Kopf und die Bedingung geprüft, dann wird alles im schleifen Körper von oben nach unten ausgeführt. Am Ende springt der ptr wieder zum schleifen Kopf prüft die Bedingung und rechnet wenn die Kondition passt I++
Am Ende springt der ptr wieder zum schleifen Kopf prüft die Bedingung und rechnet wenn die Kondition passt I++
Das ist falsch. Die Zählervariable wird am Ende des Schleifenkörpers erhöht, noch bevor eine erneute Prüfung der Bedingung stattfindet.
Ja beim ersten Durchlauf der Schleife. Es wird bei jeder iteration bis zu i<=n eine ungerade Zahl ausgegeben.
Es wird auch 1+2 gerechnet da die Variable ungerade Zahl den Wert 1 besitzt. Beim zweiten Durchlauf wird dann 3+2 gerechnet und beim dritten 5+2 und so weiter. Am besten du schaust dir ein YouTube Video an wo schleifen visuell erklärt werden. Diese Konzepte sind am Anfang sehr abstrakt
Müsste dann nicht 2 rauskommen bei der ersten schleife