Min kod hoppar över min else-if sats
Kan någon peta mig i rätt riktning vad jag gör för fel här? Jag gör min sista uppgift i programmering1 c# och detta är det sista jag behöver få bukt med. Jag har gjort en buss simulator där man skall kunna "peta" på passagerarna. Men av någon anledning hoppar koden över mina cases i mina else-if satser när jag gör mitt val om vem man skall peta på. Jätte tacksam för hjälp!
public void poke()//Metod för att peta på passagerare
{
Console.Clear();
Console.WriteLine("*****Peta på passagerarna!*****");
int platsNr = 0;
int index = -1;
foreach (Passagerare person in plats)//Här skriver jag ut bussen för att man skall få se vart eller vem man vill peta på
{
platsNr++;
if (person == null)
{
Console.WriteLine("Plats {0} är tom", platsNr);
}
else
{
Console.WriteLine("Plats {0}: {1}, {2} år gammal, {3}.", platsNr, person.Namn, person.Ålder, person.VilketKön());
}
}
Console.WriteLine("Välj vilken plats du vill peta på passageraren: ");
while (true)//Här kontrollerar jag att man har valt en plats där det sitter någon, eller att platsen ens existerar i vektorn
{
try
{
index = Convert.ToInt32(Console.ReadLine()) -1;
if (index < 0 || index >= plats.Length)
{
Console.WriteLine("Var vänlig och välj en plats mellan 1 och {0}",plats.Length);
}
else if (plats[index] == null)
{
Console.WriteLine("Den platsen är tom, var vänlig och välj en annan plats: ");
}
else
{
break;
}
}
catch (FormatException)
{
Console.WriteLine("Var vänlig och ange endast heltal");
}
catch (Exception E)
{
Console.WriteLine(E.Message);
}
}
if (plats[index].Ålder >= vuxengräns)//Petar man på någon som är vuxen kommer något av dessa alternativen att skrivas ut
{
switch (plats[index].Kön)
{
case "K":
Console.WriteLine("{0} Vad håller du på med???", plats[index].Namn);
break;
case "M":
Console.WriteLine("{0} Rör mig inte!!", plats[index].Namn);
break;
case "A":
Console.WriteLine("{0} Kan du hålla dina fingrar för dig själv, tack!", plats[index].Namn);
break;
}
}
else if (plats[index].Ålder < vuxengräns && plats[index].Ålder > barngräns)//Petar man på någon som är i tonåren så skrivs detta ut
{
switch (plats[index].Kön)
{
case "K":
Console.WriteLine("{0} Kan du vara så snäll att byta plats?", plats[index].Namn);
break;
case "M":
Console.WriteLine("{0} Varför gjorde du sådär för?", plats[index].Namn);
break;
case "A":
Console.WriteLine("{0} Det är faktiskt en pandemi, så var snäll och gör inte om det där.", plats[index].Namn);
break;
}
}
else if (plats[index].Ålder <= barngräns)//Petar man på ett barn kommer detta att skrivas ut
{
switch (plats[index].Kön)
{
case "K":
Console.WriteLine("{0} Känner jag dig?", plats[index].Namn);
break;
case "M":
Console.WriteLine("{0} Tittar upp argt och petar tillbaka.", plats[index].Namn);
break;
case "A":
Console.WriteLine("{0} Jag skriker om du gör om det där.", plats[index].Namn);
break;
}
}
Console.WriteLine("============\n"+
"Tryck på valfri tangent för att fortsätta");
Console.ReadKey(true);
}