wieso ist das eine endlosschleife?
-
Steffan2 schrieb:
heißt also, dass i,j und k gleichzeitig erhöht werden?
Natürlich nicht! Wenn du den Ablauf nicht verstehst, geh doch schrittweise mit dem Debugger durch. Die Alternative wäre z.B., sich die 3 Werte in der inneren Schleife ausgeben zu lassen. Aber ich hätte es lieber, wenn du ersteres machst.

-
Steffan2 schrieb:
heißt also, dass i,j und k gleichzeitig erhöht werden?
Nein! Eigentlich zaehlst du von 1 bis 999 schrittweise, wobei k deine letzte Stelle, j deine vorlezte, und i deine erste ist.
knivil, du gehst aber ab. 50 Beiträge in 2 Tagen? Hast du kein Leben?
Ist lustig hier. Btw. schon mal sowas bekommen, erstaunt mich immer wieder:
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
-
ahhh logisch...jetzt hab ichs!
-
Steffan2 schrieb:
ausführbedingung? in meinem skript steht abbruchbedingung. aber als ausführbedingung macht das natürlich sinn...
In manchen Sprachen steht an dieser Stelle auch eine Abbruchbedingung (Zumindestens erinnere ich mich noch entfernt daran, das entweder GFA-Basic oder Turbo Pascal an bestimmten Schleifen gegen eine genau umgedrehte Logik geprüft hatten).
Unter C++:
// Folgendes... // [1] [2] [3] for (int i = 5; i > 2; i += 5) { /*Schleifenrumpf*/ }; // Entspricht etwa: { int i = 5; // [1] while(i > 2) // [2] { /*Schleifenrumpf*/ i += 5; // [3] } }
-
Danke, ich werde in den nächsten Tagen sicherlich noch mehr Fragen haben

-
for (int i = 5; i > 2; i += 5){ cout << i; }Naja, eigentlich sollte das ja keine Endlosschleife sein, weil beim Überschreiten des maximalen int-Werts ein Bufferüberlauf entsteht und i somit den minimal mit einem int darstellbaren Wert annimmt. Dieser ist dann kleiner als 2. Dadurch sollte die Ausführbedingung falsch sein und die Schleife abgebrochen werden.
-
JohnMcLane schrieb:
Naja, eigentlich sollte das ja keine Endlosschleife sein, weil beim Überschreiten des maximalen int-Werts ein Bufferüberlauf entsteht und i somit den minimal mit einem int darstellbaren Wert annimmt. Dieser ist dann kleiner als 2. Dadurch sollte die Ausführbedingung falsch sein und die Schleife abgebrochen werden.
Ja, das wurde aber schon zu Beginn gesagt.
Das Verhalten bei Überläufen von
signed-Typen ist vom Standard jedoch nicht garantiert.
-
JohnMcLane schrieb:
Naja, eigentlich sollte das ja keine Endlosschleife sein, weil beim Überschreiten des maximalen int-Werts ein Bufferüberlauf entsteht und i somit den minimal mit einem int darstellbaren Wert annimmt. Dieser ist dann kleiner als 2. Dadurch sollte die Ausführbedingung falsch sein und die Schleife abgebrochen werden.
Man, das sollte er mir doch verraten, was nach ca. 2^31 / 5 Iterationen passiert. Spielverderber.

-
als ob...
-
Ist doch nur Spass ...
-
knivil schrieb:
Btw. schon mal sowas bekommen, erstaunt mich immer wieder:
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
Klar, vor allem wenn das Forum mal wieder hängt und man verzweifelt versucht, seinen Beitrag zu senden (in letzter Zeit ist sowas aber zum Glück nicht mehr vorgekommen). Das soll vermutlich verhindern, dass Bots das Forum vollkommen zuspammen...