Forum Doku Wiki Blog

Forumsarchiv 1999, Juni
For-Schleife

archivierte Beiträge lesen

  1. (JAVASCRIPT) For-Schleife von Flo, 23. 06. 1999, 09:41

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 09:41 Uhr von Flo veröffentlicht.

Hallo!

Wie geht denn so was:

Ich habe z.B. 15 Variablen mit den Namen Frage1, Frage2, etc.

Jetzt möchte ich Frage1 bis Frage15 zusammenzählen. Ich hatte mir das so vorgestellt:

for(i = 1; i <= 15; i++)
{
var total = frage[i] + frage[i+1];
alert(total);
}

Ihr habt inzwischen wohl schon gemerkt, dass ich ein totaler JavaScript-Anfänger bin...also verkneift euch die giftigen Kommentare ;-)

Vielen Dank für eure Hilfe.

Flo

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 09:52 Uhr von Stefan Muenz veröffentlicht.

Hallo Flo

> Ich habe z.B. 15 Variablen mit den Namen Frage1, Frage2, etc.

Die sollten besster gleich als Array definiert sein:

Fragen = new Array("wie alt? ","wie gross? ","welches Geschlecht? ","warum hier? "); /* usw. 15 Fragen in der Klammer */

Bei 15 Fragen lassen sich die Fragen dann einzeln ansprechen mit:
Fragen[0] bis Fragen[14]

> Jetzt möchte ich Frage1 bis Frage15 zusammenzählen. Ich hatte mir das so vorgestellt:
> for(i = 1; i <= 15; i++)
»»  {
»»  var total = frage[i] + frage[i+1];
»»  alert(total);
»»  }

Den Sinn dieser Schleife verstehe ich zwar nicht, aber nach obiger Array-Definition wuerde es so lauten:

for(i = 0; i < 13; i++)
{
  var total = frage[i] + frage[i+1];
  alert(total);
}

Hilft das?

viele Gruesse
  Stefan Muenz

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 10:13 Uhr von Flo veröffentlicht.

Super!

Für meine Anwendung war es sogar noch einfacher:

Fragen = new Array(15);
Fragen[0] = eval(zahl.slice(0,1));
Fragen[1] = eval(zahl.slice(1,2));
Fragen[2] = eval(zahl.slice(2,3));
Fragen[3] = eval(zahl.slice(3,4));
Fragen[4] = eval(zahl.slice(4,5));
Fragen[5] = eval(zahl.slice(5,6));
Fragen[6] = eval(zahl.slice(6,7));
Fragen[7] = eval(zahl.slice(7,8));
Fragen[8] = eval(zahl.slice(8,9));
Fragen[9] = eval(zahl.slice(9,10));
Fragen[10] = eval(zahl.slice(10,11));
Fragen[11] = eval(zahl.slice(11,12));
Fragen[12] = eval(zahl.slice(12,13));
Fragen[13] = eval(zahl.slice(13,14));
Fragen[14] = eval(zahl.slice(14,15));

for(i = 0; i < 13; i++)
{
  var total = total + Fragen[i];
  alert(total);
}

alert(total);

if (total > 52)
  self.location.href="Auswert53.htm"
  else
if (total > 37)
  self.location.href="Auswert38.htm"
  else
if (total > 22)
  self.location.href="Auswert23.htm"
  else
if (total > 7)
  self.location.href="Auswert8.htm"
else
  self.location.href="Auswert0.htm";
}

Danke Stefan

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 10:48 Uhr von Michael N. veröffentlicht.

Hallo Flo,
hier noch ein paar kleine Verbesserungen, um das ganze noch etwas besser lesbar und wartbar zu gestallten:
> Fragen = new Array(15);
»»  Fragen[0] = eval(zahl.slice(0,1));
»»  Fragen[1] = eval(zahl.slice(1,2));
»»  Fragen[2] = eval(zahl.slice(2,3));
»»  Fragen[3] = eval(zahl.slice(3,4));
»»  Fragen[4] = eval(zahl.slice(4,5));
»»  Fragen[5] = eval(zahl.slice(5,6));
»»  Fragen[6] = eval(zahl.slice(6,7));
»»  Fragen[7] = eval(zahl.slice(7,8));
»»  Fragen[8] = eval(zahl.slice(8,9));
»»  Fragen[9] = eval(zahl.slice(9,10));
»»  Fragen[10] = eval(zahl.slice(10,11));
»»  Fragen[11] = eval(zahl.slice(11,12));
»»  Fragen[12] = eval(zahl.slice(12,13));
»»  Fragen[13] = eval(zahl.slice(13,14));
»»  Fragen[14] = eval(zahl.slice(14,15));
Kann man auch so ausdruecken:
var i=0;
var Fragen = new Array(15);
for(i = 0; i <= 14; i++)
{
  Fragen[i] = eval(zahl.slice(i,i + 1));
}

> for(i = 0; i < 13; i++)
> {
>   var total = total + Fragen[i];
>   alert(total);
> }
Hier erwischst Du die letzten beiden Fragen nicht, wenn Du die auch noch mit drin haben willst solltest Du  "for(i = 0; i <= 14; i++)" schreiben.

Bis dann,
Michael N.

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 10:52 Uhr von Flo veröffentlicht.

> Kann man auch so ausdruecken:
> var i=0;
> var Fragen = new Array(15);
> for(i = 0; i <= 14; i++)
> {
>   Fragen[i] = eval(zahl.slice(i,i + 1));
> }
>
> > for(i = 0; i < 13; i++)
> > {
> >   var total = total + Fragen[i];
> >   alert(total);
> > }

Danke! Sieht einiges professioneller aus.

> Hier erwischst Du die letzten beiden Fragen nicht, wenn Du die auch noch mit drin haben willst solltest Du  "for(i = 0; i <= 14; i++)" schreiben.

Das hatte ich inzwischen auch gemerkt, danke :-)

For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 09:57 Uhr von Thomas Geipel veröffentlicht.

> Ich habe z.B. 15 Variablen mit den Namen Frage1, Frage2, etc.
>
> Jetzt möchte ich Frage1 bis Frage15 zusammenzählen. Ich hatte mir das so vorgestellt:
>
> for(i = 1; i <= 15; i++)
»»  {
»»  var total = frage[i] + frage[i+1];
»»  alert(total);
»»  }

Hallo,

obiges Script sollte nicht ganz funktionieren :-)
1. Ist die Variable frage als Array definiert ?
2. Beginnen Arrays in JS mit dem Index 0. Daher muss der Anfangwert fuer i in der for-Schleife = 0 sein.
(und der Endwert natuerlich 14).
3. Im Schleifenrumpf soll ja bei jedem Durchlauf der Inhalt von frage[i] aufaddiert werden.
Daher muss die Anweisung lauten: total += frage[i];
Vor der Ausfuehrung der Schleife sollte dann total
aber auf jeden Fall noch mit 0 initialisiert werden.
(4. Alert steht wohl besser ausserhalb der Schleife :-)

bis denn
Thomas


For-Schleife

Der folgende Beitrag wurde am 23. 06. 1999, 10:15 Uhr von Flo veröffentlicht.

Auch dir vielen Dank, ich habe es inzwischen geschafft (siehe meine Antwort bei Stefan).

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4