Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2003, 13:57   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 29
nach for-schleife i=i+1 ?!

Moin,

öhm...kann das sein, dass flash irgendwie nen kleinen tick beim zählen hat? also wenn ich ne for-schleife hochzählen lasse..

ActionScript:
  1. for (i=1; i<=10; i++) {
  2.   trace("i = "+i);
  3. }
  4. trace("i nach der schleife: "+i);

dann bekomme ich in der schleife i=1..10, wie's sein soll...mit dem trace außerhalb der schleife aber 11 ?! was soll denn sowas?

bin ich nur zu blöd oder ist das so?

mfg arne
TopGun2000 ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:06   #2 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
hehe, das ist komisch.
flash zählt wol noch ne runde hoch:
ActionScript:
  1. for (i=1; i<=10; i++) {
  2.     trace("i = "+i);
  3.     if(i==10) break;
  4. }
  5. trace("i nach der schleife: "+i); // =10
  6.  
thorben.schmitt ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:08   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 29
hmm...dann bin ich doch nicht doof...
so komisch find ich das zwar nicht...aber was soll man machen...und ich HASSE breaks dat is unsauber *gg*

mfg
Arne
TopGun2000 ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:12   #4 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
noch ne andere variante:
ActionScript:
  1. for (i=1; i<=10; i++) {
  2.     trace("i = "+i);
  3.     o = i;
  4. }
  5. trace("i nach der schleife: "+o);
thorben.schmitt ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:14   #5 (permalink)
ActionScripter
 
Benutzerbild von leroy
 
Registriert seit: Jun 2003
Ort: Paderborn
Beiträge: 140
Re: nach for-schleife i=i+1 ?!

Zitat:
Geschrieben von TopGun2000
Moin,

öhm...kann das sein, dass flash irgendwie nen kleinen tick beim zählen hat? also wenn ich ne for-schleife hochzählen lasse..

ActionScript:
  1. for (i=1; i<=10; i++) {
  2.   trace("i = "+i);
  3. }
  4. trace("i nach der schleife: "+i);

dann bekomme ich in der schleife i=1..10, wie's sein soll...mit dem trace außerhalb der schleife aber 11 ?! was soll denn sowas?

bin ich nur zu blöd oder ist das so?

mfg arne
Ist doch ganz logisch: nach jedem Schleifendurchlauf wird die Variable i um eines erhöht. Und dann wird verglichen.

Angenommen man ist in der Runde mit i=10. Dann wird der Rumpf durchlaufen und i erhöht. Also ist i=11. Jetzt wird die Abbruchbedingung geprüft. 11<=10 ist falsch, also wird der Rumpf nicht mehr ausgeführt und die Zeile nach der Schleife -also der trace-Befehl- ausgeführt.

Grüße,
Markus
leroy ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:19   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
Re: nach for-schleife i=i+1 ?!

Zitat:
Geschrieben von TopGun2000

ActionScript:
  1. for (i=1; i<=10; i++) {
  2.   trace("i = "+i);
  3. }
  4. trace("i nach der schleife: "+i);
verblüffend! ich hatte zuerst die vermutung, dass er das "+" irgendwie nicht als stringoperator sieht und weiter hochzählt; deshalb die strings rausgenommen; dann bleibt das ergebnis aber dasselbe.
hier ein weiteres experiment:
ActionScript:
  1. for (i=1; i<=10; i++) {
  2.     trace(i);
  3.     if (i==5) {
  4.         break;
  5.     }
  6. }
  7. trace(i);

ergibt immerhin die werte
1
2
3
4
5
5

edit: da war ich ja ganz schön langsam beim antworten!

Geändert von fresh (01-10-2003 um 14:20 Uhr)
fresh ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:19   #7 (permalink)
ActionScripter
 
Benutzerbild von leroy
 
Registriert seit: Jun 2003
Ort: Paderborn
Beiträge: 140
Zitat:
Geschrieben von TopGun2000
hmm...dann bin ich doch nicht doof...
so komisch find ich das zwar nicht...aber was soll man machen...und ich HASSE breaks dat is unsauber *gg*
Sauber ist das schon. Man sollte nur die Definition einer for-Schleife kennen und wissen wofür die einzelnen Parameter stehen.

Grüße,
Markus
leroy ist offline   Mit Zitat antworten
Alt 01-10-2003, 14:30   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 29
hast recht...da muss ja erst ma die abbruchbedingung erfüllt sein... war aber davon ausgegangen, dass wenn sie erfüllt ist, i auf den letzten stand zurückgebracht wird, für den sie nicht erfüllt war...

aber das is echt normal..ist mir noch nie aufgefallen...aber das is dann logischerweise nicht nur bei flash so...
TopGun2000 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele