Laden...

for - schleife funkt ned..

Erstellt von wololo vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.278 Views
W
wololo Themenstarter:in
15 Beiträge seit 2008
vor 15 Jahren
for - schleife funkt ned..

for (int i=0;i<26;i++)
{
....
}

so nun zum fehler
er hört nach i<26 auf --> er mach i++ nicht!
warum?

eig is die frage peinlich^^

K
165 Beiträge seit 2007
vor 15 Jahren

Hallo wololo,

funktioniert die Schleife generell nicht, oder meinst Du er hört bei 25 auf?

Gruß Kalleberlin

If u want to finish first, u have to finish first.
W
wololo Themenstarter:in
15 Beiträge seit 2008
vor 15 Jahren

er überprüft zwar immer ob i<26 ist und dann sollte er eig i++ machen
macht er aber nicht

und den inhalt der for-schleife macht er ja aber nur dsa i++ nicht

K
165 Beiträge seit 2007
vor 15 Jahren

Also, die Schleife die Du hier gepostet hast, ist vollkommen i.O. .

Vielleicht hast Du irgendeine Abbruchbedingung in deiner Schleife?

Gruß Kalleberlin

If u want to finish first, u have to finish first.
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo wololo,

du meinst, warum i nie den Wert 26 annimmt? Tut es ja, bloß davon bekommst du nichts mit, weil dann die Schleife abgebrochen wird und die Variable i danach nicht mehr sichtbar ist.

herbivore

2.187 Beiträge seit 2005
vor 15 Jahren

Hi,

Der letzte Teil einer for-Schleife wird nur so lange ausgeführt, wie der zweite Teil (die Bedingung) true ergibt.
D.h. Sobald i 26 erreicht hat, wird i nicht mehr incrementiert und bleibt auf 26.

Am besten debuggst du einfach mal Schritt für Schritt durch die Schleife, weil es dir dann haargenau gezeigt wird.

Gruß
Juy Juka

Gelöschter Account
vor 15 Jahren

vielleicht deswegen, weil er immer erst die komplette schleife durchgeht und dann bevor er prüft das i++ macht?

W
wololo Themenstarter:in
15 Beiträge seit 2008
vor 15 Jahren

^^ ja das weiß ich alles schon

so ich beschreibt mal die zwischen schritte die VS macht

for (int i=0;i<26;i++)
{
   ...
}

int i=0
dann überprüft er ob i<26 ist
dann spirngt er in {-Klammer und macht ........ }
soo dann geht er wieder in i=0;i<26; nur er macht i++ nicht er übersrpingt das und geht wieder in die {..}

Gelöschter Account
vor 15 Jahren

falsch er macht:

  1. int i = 0;
  2. i<26
  3. {
  4. }
  5. i++
  6. i<26
    .
    .
    .
W
wololo Themenstarter:in
15 Beiträge seit 2008
vor 15 Jahren

ja mein ich ja nur er macht das i++ nicht

K
165 Beiträge seit 2007
vor 15 Jahren

Hallo wololo,

for(int i= 0; i < 26; i++)
{
    Console.WriteLine("i = " + i.ToString());
}

Sollte das auch nochmal veranschaulichen.

If u want to finish first, u have to finish first.
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo wololo,

ja mein ich ja nur er macht das i++ nicht

natürlich macht er. Wie kommst du darauf, dass er es nicht täte?

herbivore

W
wololo Themenstarter:in
15 Beiträge seit 2008
vor 15 Jahren

weil i innerhalb der schleife immer 0 bleibt

K
165 Beiträge seit 2007
vor 15 Jahren

Hallo wololo,

poste doch am besten mal den Inhalt deiner Schleife 🙂. Ich denke anders kommen wir hier nicht weiter 😉

Gruß Kalleberlin

If u want to finish first, u have to finish first.
Gelöschter Account
vor 15 Jahren

ich glaube, das du innerhalb der schleife wieder ein i-- oder ein i=0 machst.

915 Beiträge seit 2006
vor 15 Jahren

Oder hast sowas hier ?


public int i
{
     get { return ni = 0; }
}


oder sowas ?


for (int i = 0; i < 26; i++)
{
    i ^= i;
}

Usw.. da kann viel in deiner Klammer oder aussen drum rum stehen was dir nen streich spielt. Das mit dem Propertie ist mir zwar nicht genau für das selbe, aber in anderer form durch Copy & Paste auch schon passiert... 😉

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(