Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   probleme mit For-Schleife (https://www.delphipraxis.net/11968-probleme-mit-schleife.html)

markon 18. Nov 2003 15:06

Re: probleme mit For-Schleife
 
http://www.mysmilie.de/smilies/big/img/014.gif

kann ja mal passieren, damit man so nen denkfehler drin hat..
passiert jeden auf kurz oder lang...

Treffnix 18. Nov 2003 15:10

Re: probleme mit For-Schleife
 
Zitat:

Zitat von shareholder
Zitat:

zahl der ausfürhrungen sondern um den Wert vom Durchlaufzähler...
wo ist der unterschied ?

Der Unterschied liegt darin, dass der Zähler, wie du ja selbst geschrieben hast die werte 0-3 annimmt. Das ganze aber in 4 ( 1-4 ) Durchläufen.

Wie auch immer. Tyrael hat Recht. Das ursprüngliche Problem ist schon lange gelöst. Wenn du den letzten Wert der Schleifenvariable nach Ende der Schleife noch benötigst, musst du ihn innerhalb der Schleife einer weiteren Variable zuweisen, da die Schleifenvariable selbst nach Schleifenende nicht mehr definiert ist.

moin339 18. Nov 2003 15:12

Re: probleme mit For-Schleife
 
Zitat:

Zitat von Tyrael Y.
leutz,
lest ihr überhaupt was einige schon geschrieben haben?

guckt euch doch mal die Compilermeldung an
Zitat:

FOR-Loop variable may be undefined after Loop
.. sagt euch das vielleicht irgendwas?
wenn nicht...die zählvariable ist NUR innerhalb der schleife gültig
ausserhalb ist sie nicht definiert...auch wenn es jetzt einen anderen wert habne sollte...dieser Wert ist null und nichtig

das habe ich schon verstanden aber trotzdem sollte der wert 3 sein (wenn die variable auch nach der schleife noch definiert wäre

Zitat:

Zitat von shareholder
Zitat:

zahl der ausfürhrungen sondern um den Wert vom Durchlaufzähler...
wo ist der unterschied ?

wenn i am anfang = 0 (for i:=0 to 3) ist dann ist die zahl der ausführungen = 4 und die Variable (Durchlaufzähler) hat im letzten durchlauf den wert 3

wenn i am anfang = 1 (for i:=1 to 4) ist dann ist die zahl der ausführungen = 4 und die Variable (Durchlaufzähler) hat im letzten durchlauf den wert 4

Die Zahl der Ausführungen ist nur dann gleich mit dem Wert des Durchlaufzählers wenn i am anfang = 1 ist!

edit: da war wohl jemand schneller ;)

Tyrael Y. 18. Nov 2003 15:18

Re: probleme mit For-Schleife
 
Zitat:

das habe ich schon verstanden aber trotzdem sollte der wert 4 sein (wenn die variable auch nach der schleife noch definiert wäre
das wichtige wort hier ist wäre

ist es aber nicht, schluss ende aus,
oder definier dir ne neue Sprache DelphiNew oder so


Ergänzung:
mal ein Beispiel für wäre:

Wäre Zahl/0 definiert als 0, so wären viele mathematische Probleme ganz anders
ist es aber nicht es ist nicht definiert


Gruß

Treffnix 18. Nov 2003 15:18

Re: probleme mit For-Schleife
 
Zitat:

aber trotzdem sollte der wert 4 sein
Du meinst 3.

Zitat:

Die Zahl der Ausführungen ist nur dann gleich mit dem Wert des Durchlaufzählers wenn i am anfang = 0 ist!
Du meinst 1. :wink:


[Tyraelärgeredit]
Zitat:

ist es aber nicht, schluss ende aus
Warum eigentlich nicht? :angle2:
[/Tyraelärgeredit]
P.S.: Auf die Frage brauchst du nicht zu antworten :zwinker:

moin339 18. Nov 2003 15:20

Re: probleme mit For-Schleife
 
Zitat:

Zitat von Treffnix
Zitat:

aber trotzdem sollte der wert 4 sein
Du meinst 3.

Zitat:

Die Zahl der Ausführungen ist nur dann gleich mit dem Wert des Durchlaufzählers wenn i am anfang = 0 ist!
Du meinst 1. :wink:

habe ich doch geschrieben ;) das ganze bringt mich total durcheinander.... wir sollten es dabei belassen :D

Thunderchild 18. Nov 2003 16:04

Re: probleme mit For-Schleife
 
Das kommt davon, wie Delphi die Schleife im Maschinencode umsetzt:

Code:
    MOV CX,0 ;Startwert
schleife:
    NOP ;hier stehen die Befehle in der Schleife
    INC CX
    CMP CX,4 ;Schleifenvari mit Endwert vergleichen
    JNE schleife ;solange ungleich einen weiteren Durchlauf beginnen
Das hat das Resultat, dass die Schleifenvari am Schluß Endwert+1 ist.

shareholder 18. Nov 2003 22:00

Re: probleme mit For-Schleife
 
hey,

nochmal danke an die leute, die mich zum thema
zahl der durchläufe und durchlaufzähler aufgeklärt haben ! :-D :thuimb:

MrKnogge 18. Nov 2003 22:07

Re: probleme mit For-Schleife
 
dann haben wir ja alle was gelernt :mrgreen:

Pauli 12. Dez 2003 13:12

Re: probleme mit For-Schleife
 
Bei der FOR-schleife wird der Wert bei "end" automatisch um 1 erhöht, dann wird überprüft, ob die schleife zu Ende ist (Spreich index > 3) und erst dann abgebrochen.
Deswegen hast du nach der Schleife index=4.
Mach einfach gleich nach der Schleife
index := index - 1;

So kriegst du deine 3 zu fassen. :lol: :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:13 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz