Switch Case Anweisung

Hallo zämmä

Ich brauche eure Hilfe.

Wenn ich eine Switch Case Anweisung habe und z.b. im Case 1 eine Eingabe machen will:

s=Console::ReadLine();
z=Convert::ToInt16(s);

bricht mir das Programm ab „*.exe funktioniert nicht mehr“! Hat es einen zusammenhang, dass der Wert nicht von Anfang an im Code vermerkt ist? Ich habe s und z am Anfang aufgeführt :frowning:

String ^s;
int z;

Muss ich mit Zeiger arbeiten?? *s und &z?

Danke für eure Hilfe.

Gruss Renato

switch (variable1)
{
case 100:
bla bla;
break;

case 200:
bla bla;
break;

}

Ja das habe ich schon gemacht. Mir übernimmt es aber den Wert nicht. Wenn ich den Wert am Anfang initalisiere (int i=10) dann funktioniert es. Wenn ich den Wert aber erst im Case angebe, bricht mir das Programm ab.

Gruss Renato

Es wäre wünschenswert, wenn du einmal deinen switch Block posten könntest.

Wenn ich den Wert am Anfang initalisiere (int i=10)
dann funktioniert es. Wenn ich den Wert aber erst im Case
angebe, bricht mir das Programm ab.

Deiner Beschreibung nach, glaube ich, dass du irgendetwas dieser Art hast:

switch(nNumber)
{
 case 100:
 int i = 0;
 // Irgendetwas in i einlesen
 break;
}
// i verwenden

i ist dabei eine lokale Variable und existiert nach der Ausführung des case Blocks nicht mehr!

Wenn du in einem switch Block Variablen befüllen willst und diese anschließend weiter verwenden willst, musst du sie vorher deklarieren:

int i;
switch(nNumber)
{
 case 100:
 // Irgendetwas in i einlesen
 break;
}
// i verwenden

mfg dixxi

Ich habe gemerkt, wenn ich es so schreibe, funktioniert es!

Console::ReadLine();
z=Convert::ToInt16(Console::ReadLine());

Jedoch funktioniert meine do/while Schleife nicht mehr :frowning:

Gruss Renato