Laden...

For Schleife mit "Stringaufzählung"

Erstellt von Nedel vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.176 Views
N
Nedel Themenstarter:in
2 Beiträge seit 2007
vor 16 Jahren
For Schleife mit "Stringaufzählung"

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!

5.941 Beiträge seit 2005
vor 16 Jahren

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

M
190 Beiträge seit 2007
vor 16 Jahren

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.

N
Nedel Themenstarter:in
2 Beiträge seit 2007
vor 16 Jahren

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?

D
67 Beiträge seit 2006
vor 16 Jahren

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

J
3.331 Beiträge seit 2006
vor 16 Jahren

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

664 Beiträge seit 2005
vor 16 Jahren