Min privata debugger hahaha! Snart får jag swisha dig. Kan du kolla över denna koden och förklara varför svaren jag matar in inte sparas in i min vektor?
Det sparas när jag tar bort if-satsen, men då försvinner första flaskan.
public void Add_soda() // Här kommer man om man valt case nr 1, vilket är att man får skriva in sina drycker.
{
if (antal_flaskor < 24)
{
Console.WriteLine("");
Console.WriteLine("Du får nu skriva in vilka drycker du vill ha i backen tills den är full:"); // Skriver ut text och ber användaren skriva drycken.
int soda_input = 0;
string chosenSoda = "";
do
{
Console.WriteLine("1: Coca-cola"); // skriver ut alternativen för flaska
Console.WriteLine("2: Fanta");
Console.WriteLine("3: Pepsi");
Console.WriteLine("4: Öl");
Console.WriteLine("5: Redbull");
Console.WriteLine("6: Cider");
Console.WriteLine("7: Vatten");
try
{
soda_input = int.Parse(Console.ReadLine());
}
catch (Exception e)
{
Console.WriteLine("Bara siffror din skojare.");
continue;
}
if (chosenSoda == null)
{
flaskor[antal_flaskor] = chosenSoda; // lagrar svaren i min vektor
}
antal_flaskor++; // för varje svar jag skriver så ökar det med 1 i vektorn hela vägen till 24
switch (soda_input) // Skapar en meny, som skriver ut vilken dryck användaren väljer tills backen blir full.
{
case 1:
chosenSoda = "Coca-Cola";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Coca-Cola");
Console.WriteLine("-------------------");
break;
case 2:
chosenSoda = "Fanta";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Fanta");
Console.WriteLine("-------------------");
break;
case 3:
chosenSoda = "Pepsi";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Pepsi");
Console.WriteLine("-------------------");
break;
case 4:
chosenSoda = "Öl";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Öl");
Console.WriteLine("-------------------");
break;
case 5:
chosenSoda = "Redbull";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Redbull");
Console.WriteLine("-------------------");
break;
case 6:
chosenSoda = "Cider";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Cider");
Console.WriteLine("-------------------");
break;
case 7:
chosenSoda = "Vatten";
Console.WriteLine("-------------------");
Console.WriteLine("Du valde Vatten");
Console.WriteLine("-------------------");
break;
default: // om man skriver siffror ovanför 1-7 så skrivs detta ut.
Console.WriteLine("-------------------");
Console.WriteLine("Siffor mellan 1-7 min vän");
Console.WriteLine("-------------------");
break;
}
} while (antal_flaskor != 24);
}
else
Console.WriteLine("");
Console.WriteLine("Backen är full. Vänligen välj ett av alternativen nedan om du vill vidareforska backen:");
Console.WriteLine("");
}
If satsen i tjock-text är det som krånglar för mig. Nu när jag ska se över vad som finns i backen skrivs det bara ut "Tom plats"
Jag ser inte varför det inte ska lagras i vektorn, tar jag bort den ifsatsen och bara kör utan, så lagras allting, men då försvinner det första svaret.
Någon som ser varför?
Lägger jag till en else {
flaskor[antal_flaskor] = chosenSoda;
}
Så lagras allt förutom första flaskan som jag matar in i programmet. Den blir blank, visas 23 flaskor.
Jag kan göra en tillfällig lösning med att ha 25 flaskor i backen och då visar den 24, men vill förstå vad jag gör fel, om det är en regel som jag missar eller bara slarvig kodning, eller om det faktiskt är något svårt?