Entwickler-Ecke

C# - Die Sprache - For-Schleife, Ausdruck mit Vergleichsoperator


craash - Do 30.09.10 14:25
Titel: For-Schleife, Ausdruck mit Vergleichsoperator
Hallo,

ich habe gerade längere Zeit gerätselt, wieso ein Programm nicht lief, in dem einem Array mit Hilfe einer for-Schleife Objekte zugewiesen werden sollten. Weder der Compiler meldete sich noch eine hilfreiche Fehlermeldung..

Entsprechend groß war meine Überraschung dann als ich aus purer Verzweiflung einen Ausdruck in der for-Schleife verändert habe und - tadaa es lief^^

Vorher:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Integernumber[] IntArray = new Integernumber[4];
Random rnd = new Random();
Int32 random;

for (Int32 i = 0; i == 3; i++)
            {
                random = rnd.Next();
                IntArray[i] = new Integernumber(random);       
            }


Nachher:

C#-Quelltext
1:
2:
3:
4:
5:
for (Int32 i = 0; i < 4; i++)
            {
                random = rnd.Next();
                IntArray[i] = new Integernumber(random);       
            }


(Der Vollständigkeit halber:)

C#-Quelltext
1:
2:
3:
4:
5:
//Konstruktor
        public Integernumber(Int32 intNo)
        {
            IntNumber = intNo;
        }



Wieso funktioniert die erste Schleife nicht? Dem Array werden einfach keine Werte zugewiesen bzw. bleiben alle auf null stehen.

Grüße


Ralf Jansen - Do 30.09.10 14:31

Die Aussage des vorher Codes ist 'führe die Schleife aus solange i gleich 3 ist'
die Aussage der nachher Codes ist 'führe die Schleife aus solange i kleiner 4 ist'.

Die Pointe wirst du jetzt wahrscheinlich selbst erkennen.


craash - Do 30.09.10 14:38

Hmm dann war ich wohl zu sehr an Delphis

for x=0 to x=5 do ...

gewöhnt.

Danke ;-)


Grüße