Einzelnen Beitrag anzeigen

Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
482 Beiträge
 
Delphi 11 Alexandria
 
#30

AW: array[1..10] auf Wert prüfen?

  Alt 14. Aug 2018, 22:16
Code:
...
50
Halbzeit
52
...
sieht nicht ganz richtig aus.
Jo, hast recht. Hatte es nur unter FPC eben im Browser getestet, und da zählt der bei 51 weiter. Unter Delphi bei 52. Ist ja auch egal, FPC interessiert mich sowieso nicht wirklich. In Delphi und SMS bekomm muss ich nur das Succ weg lassen, und bekomme 51.

Ab WriteLn('Halbzeit') hat I keinen definierten Zustand. D.h. Succ(I) produziert in der zweiten Schleife einen zufälligen Wert. Kann sein, dass es jetzt für dich (zufällig) funktioniert. Würde ich mich aber nicht drauf verlassen.
Das stimmt doch nicht. Der Wert, den Succ(I) zurückgibt, ist immer der selbe. Ich habe es jetzt spaßeshalber mal mit 5 verschiedenen Konstellationen einige Male durchgespielt, und die Schleifenvariable war in keinem einzigen Fall undefiniert, so lange die Schleife mindestens 1 mal durchlaufen wurde. Warum sollte sie das auch sein, es wurde ja im späteren Verlauf nichts reingeschrieben.

Bitte, und das geht jetzt auch an alle anderen, die meinen, dass das nur "eine glückliche Ausnahme" sei: Schickt mir mal einen einzigen Code-Schnipsel, in dem das nicht der Fall ist, und ich nehme alles wieder zurück und gebe zu, dass ich falsch lag. Aber bisher habe ich noch nichts dergleichen bemerkt. for -Schleifen, die durchlaufen, behalten ihren Wert hinterher.

Ich habe anbei mal den ASM-Code für eine Leere For-Schleife von 1 bis 5 mit angehängt. Da sieht man ziemlich gut, wie eine For-Schleife funktioniert, und auch, dass immer nach oben gezählt wird.
Miniaturansicht angehängter Grafiken
2018-08-14_231214.jpg  
Dennis
  Mit Zitat antworten Zitat