Problem med att tilldela värde till vektor

Permalänk
Medlem

Problem med att tilldela värde till vektor

Hej!

Jag håller på med min sista uppgift i programmeringskursen jag läser, och jag har stött på ett problem som jag inte lyckas lösa själv(trots googlande, osv).

Jag har en vektor med 25 platser skapad(vi måste ha vektor och inte list).
Från en meny skall man kunna välja mellan 5 val(i mitt fall är det hundraser). Det jag inte löser är hur jag ska få valet från menyn att hamna i vektorn. Den skall inte bli längre, utan den skall tilldelas värde i form av text.

Jag har skapat en string som heter val, som skall lagra det användaren väljer i menyn. Den får ett tilldelat värde i varje meny-val.
Men nere i min for-loop så bärs inte värdet över.

Hur ska jag tänka för att lösa detta?

Här är min kod:

int hundMeny = 0; do { Console.WriteLine("1 Siberian Husky"); Console.WriteLine("2 Tax"); Console.WriteLine("3 Corgi"); Console.WriteLine("4 Westie"); Console.WriteLine("5 Akita inu"); Console.WriteLine("6 Jag vill inte lägga till en hund"); hundMeny = int.Parse(Console.ReadLine()); string val; switch (hundMeny) { case 1: Console.WriteLine("Du valde Siberian Husky!"); val = "Siberian Husky"; break; case 2: Console.WriteLine("Du valde Tax!"); val = "Tax"; break; case 3: Console.WriteLine("Du valde Corgi!"); val = "Corgi"; break; case 4: Console.WriteLine("Du valde Westie!"); val = "Westie"; break; case 5: Console.WriteLine("Du valde Akita Inu!"); val = "Akita Inu"; break; case 6: return; default: Console.WriteLine("Inkorrekt inmatning. Försök igen"); break; } for (int o = 0; o < hundar.Length; o++) { if (antal_hundar == 25) { Console.WriteLine("Tyvärr, hunddagiset är fullt!"); } else { antal_hundar++; if (hundar[o] == null) { hundar[o] = val; break; } } } } while (hundMeny != 0);

Permalänk
Medlem

Det är for-loopen som gör att det inte fungerar, all loopning som behövs är din do-while. Tar du bort for-loopen och använder din variabel antal_hundar som index vid tilldelningen bör det fungera med några mindre ändringar i else-satsen, samt att ändra till "continue" istället för "break" vid default case i switch-casen.

if (antal_hundar == 25){ Console.WriteLine("Tyvärr, hunddagiset är fullt!"); } else{ hundar[antal_hundar++] = val; }

Permalänk
Medlem
Skrivet av Hot Dogs:

Det är for-loopen som gör att det inte fungerar, all loopning som behövs är din do-while. Tar du bort for-loopen och använder din variabel antal_hundar som index vid tilldelningen bör det fungera med några mindre ändringar i else-satsen, samt att ändra till "continue" istället för "break" vid default case i switch-casen.

if (antal_hundar == 25){ Console.WriteLine("Tyvärr, hunddagiset är fullt!"); } else{ hundar[antal_hundar++] = val; }

Tackar så hjärtligt för hjälpen! Det löste det finfint!