Hey Leute,
hab eine kleine Frage zu for-schleifen. Beschäfte mich erst seit kurzem mit Programmierung.
Wie kann ich
for (int i = 0; i<5;i++)
{
int bar"i" = ...;
}
realisieren. Also dass es immer bar1, bar2, bar3... aufzählt.
Oder gehtt das gar nicht, weil bar vom typ int ist ?
Wäre dankbar für eure Hilfe!
Hallo Nedel und willkommen in der Community
Deine Frage verstehe ich leider überhaupt nicht.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Hi,
das geht so nicht du willst den Variablen namen zusammen bauen, wenn ich das richtig sehe.
Du müsstest ein array dafür anlegen also
//string[] bar = new string[anzahl]
//EDIT: ups int nicht string
int[] bar = new int[anzahl]
//dann kannst du über
for (int i = 0; i<5;i++)
{
int bar[i] = ...;
}
//darauf zugreifen.
Vielleicht solltest du sowas aber im 🛈 nachlesen.
hier ein Ausschnitt aus meinem Programm:
//Bar1 bestimmen
Rectangle bar1 = new Rectangle(rectFace.Left + rectFace.Width / 10, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent1 / scale_y ,
rectFace.Width / 10, rectFace.Height / 40);
//Bar2 bestimmen
Rectangle bar2 = new Rectangle(bar1.Right + bar1.Right / 7, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent2 / scale_y,
rectFace.Width / 10, rectFace.Height / 40);
//Bar3 bestimmen
Rectangle bar3 = new Rectangle(bar2.Right + bar1.Right / 7, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent3 / scale_y,
rectFace.Width / 10, rectFace.Height / 40);
Ich erstelle hier Balkendiagramme. Nun würde ich das ganze leiber in einer Schleife schreiben, da ich insgesamt 5 bars habe.
GammaContent.. ist vom Typ Float.
Wie kann ich bar.. und GammaContent.. in der for schleife aufzählen lassen, oder geht das gar nicht?
Was genau willst du mit dieser Schleife bewirken?
Mir ist nicht bekannt, dass man den Namen einer Variable auf deiner Weise deklarien kann (wenns doch geht dann bescheit geben).
Mir ist auch der Sinn nicht so ganz klar. Zum einen ist die Variable, die du versuchst in der Schleife zu erstellen nur in der Schleife gültig. Das heißt, sobald die Schleife ein weiters mal durchlaufen wird, würde es "bar0", wenn es möglich wäre, nicht mehr geben.
Wenn du dir fünf Werte generien lassen willst, dann verwende doch zur temporären Speicherung eine Collection. Zum Bsp:
List<int> myList =new List<int>();
myList.Add(int-wert)
„Ich erfand den Begriff «objekt-orientiert», und ich kann sagen, dass ich dabei nicht C++ im Sinn hatte.“ Alan Kay
Der letzte Beitrag von davidG führt doch in die richtige Richtung: Nedel will Elemente vom Typ Rectangle zusammenfassen. Dann ist folgendes Verfahren vernünftig:
List<Rectangle> myList = new List<Rectangle>(5);
for(int x1 = 0; x1 < 5; x1++) {
myList.Add(new Rectangle(...));
}
Die Parameter musst Du sinnvoll mit x1 verknüpfen. Der erste Parameter kann mit Sicherheit ersetzt werden durch etwas wie (x1*a+b)/7.
Viel Erfolg! Jürgen