Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-07-2004, 23:55   #1 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
"var" und for-schleife

ok leute.. macht euch auf was gefasst..
(nicht vom vielen code aufhalten lassen.. ist extrem einfacher kot!)

ziemlich peinliche Frage!...

es geht um das Wörtchen "var"!
var leitet doch eine lokale variable ein,ne?
ok... aber ich blick da grade irgendwas nicht und steh mir da slebst im weg.. keine ahnung was los ist...:

ActionScript:
  1. lala = 13;
  2.  
  3. for (var lala = 1; lala<5; lala++) {
  4.     trace(lala);
  5. }
  6. trace(lala);   
  7.  
  8.  
  9. //ausgabe:
  10.  
  11. 1
  12. 2
  13. 3
  14. 4
  15. 5

ist lala dann in der for schleife nicht lokal?
..aber dann müsste am ende der ausgabe ja noch "13" stehen..
oder liegt das daran, dass for nur ne schleife ist und keine function...

weil z.b. da:
ActionScript:
  1. lala = 13;
  2.  
  3. function pape() {
  4.    var lala=1
  5.    trace(lala);
  6. }
  7. pape();
  8. trace(lala);   
  9.  
  10. //ausgabe
  11. 1
  12. 13

funzt das ja wunderbar!

also den ausgabe- und debug-ergebnissen nach ist lala in der forschleife nicht lokal!
...aber wofür schreiben dann alle immer in die for-schleifen-bedingung rein???


Danke
Robert

P.S.:
sowas mit doppelter namens gebung tue ich natürlich nie!
es geht mir nur ums reine wissen und zu test zwecken habe ich doppelte sinnlose namen genommen!=)
pape ist offline   Mit Zitat antworten
Alt 27-07-2004, 00:31   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
in AS sind variable global bekannt. wenn man das nicht möchte, dann ist die variable mit var neu zu deklarieren.

in deinem 1. beispiel steht alles auf der selben "ebene". dein var initialisiert die variable, damit wird der vorherige wert überschrieben.

im 2. beispiel wird die variable in einer funktion neu definiert. somit weiss das programm, das die variable in der funktion etwas anderes ist, als die namensgleiche variable ausserhalb. ohne das var wäre die globale varibale innerhalb der funktion bekannt.

(in PHP z.b. ist das genau umgekehrt. dort muss man globale variable innerhalb der funktion deklarieren. sonnst kenn die funktion die globale nicht)


"..sowas mit doppelter namens gebung tue ich natürlich nie!.."
da wäre ich mir nicht so sicher! man benützt all zu gerne für eine for-schleife das i. wenn man hierbei das var vergisst kann die schleife recht merkwürde schleifen ziehen ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-07-2004 um 00:34 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-07-2004, 00:47   #3 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi!
danke soweit ziemlich gut erklärt!
- und soweit hatte ich es ja dann auch richtig im Kopf!

..grundsätzlich nutze ich in for schleifen meist wenn mehrere vorkommen, die sich in der nähe von einander aufhalten unterschiedliche buchstaben (ich kenne ja noch nen paar andere wie z.b. : "j") und

Zitat:
Zitat von hgseib
wenn man hierbei das var vergisst kann die schleife recht merkwürde schleifen ziehen ;-)
da verstehe ich dann wieder was nicht.. wenn die sich auf gleicher ebene wie in bsp1 von mir befinden wird das i dank var überschrieben.. aber wenn ich das var weglasse, dann wird doch einfach i=xx gesetzt.. das wäre doch eigentlich für die for schleife egal... weil i aufjedenfall den wert annimmt, der hinter dem "=" steht...also wäre "var" ja unnötig.... da habe ich irgendwie grad nen brett vorm kopp...sry
pape ist offline   Mit Zitat antworten
Alt 27-07-2004, 01:15   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
für eine verschachtelte schleife muss natürlich jeder schleifenzähler einen anderen namen haben. das ist klar:
for (var i=0;i<100;i++) {
for (var j=0;j<100;j++) {
for (var k=0;k<100;k++) {

}
}
}


folgendes beispiel (ist mir durchaus schon passiert):

in einer function eine for-i schleife. innerhalb der schleife wird eine andere function aufgerufen, die auch eine for-i schleife hat. zurück von dieser function steht i jetzt auf dem wert den es dort hatte - i war halt überall global.

-----------------------
das muss man jetzt erst einmal verstehen ;-)
"..der hinter dem "=" steht...also wäre "var" ja unnötig.."
in diesem konkreten falle: ja
nützt nix, schadet aber auch nichts.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-07-2004 um 01:18 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-07-2004, 01:23   #5 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
ja.. das ist mir alles klar.. nch mal nen bisl deutlicher formuliert:
was ist daran
ActionScript:
  1. for (var i=0;i<100;i++) {
  2. for (var j=0;j<100;j++) {
  3. for (var k=0;k<100;k++) {
  4.  
  5. }
  6. }
  7. }
besser als daran
ActionScript:
  1. for ( i=0;i<100;i++) {
  2. for ( j=0;j<100;j++) {
  3. for ( k=0;k<100;k++) {
  4.  
  5. }
  6. }
  7. }

das var spielt für die for -schleife doch keine rolle.. nur wenn sie inner function steht..
?
pape ist offline   Mit Zitat antworten
Alt 27-07-2004, 02:41   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
jaja...aber normalerweiße hat man solche schleifendurchläufe auch nicht 'unbeaufsichtigt' in der zeitleiste rumstehen, sondern innerhalb von funktionen.
eigentlich sollte so ziemlich gar nichts in der hauptzeitleiste rumfliegen, ws nicht unbedingt dort benötigt wird...


und da es innerhalb einer funtion - jedwäiger art - dann wiederum sinn macht, ist das irgendwasnn so drin, dass man es auch außerhalb immer auf var setzen würde...
aber fakt ist:
es macht in deine konkreten bsp keinen unterschied...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 11-08-2004, 03:15   #7 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wow.. habe den tread grade wieder gefunden..lol

DANKE!

das wollte ich wissen - konnte mir das nämlich nicht erklären...!

thx
pape
pape 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 08:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele