2
svar
130
visningar
CsharpStudent behöver inte mer hjälp
Slå ihop fler index if (Val==0)
Hej, jag försöker förstå hur jag kan slå ihop mina if else som är identiska, förutom att de har olika index såklart. Någon som vet hur jag gör detta för att undvika en massa if else med identisk kod?
static void Main(string[] args)
{
//Deklarerar en int för menyval
int menyVal;
//Deklarerar en stringVektor med värdet av en stringVektor med fem platser
string[] minRygga = new string[5];
bool minBool = true;
//Deklarerar 5 vektorer, värdet startar alltid på 0
minRygga[0] = "";
minRygga[1] = "";
minRygga[2] = "";
minRygga[3] = "";
minRygga[4] = "";
//Vill bara att text ska skrivas ut en gång och sätter den utanför loop
//n för ny rad, t för tabb
Console.WriteLine("\n\tVälkommen! ");
//SÅ LÄNGE bool är true kommer loop fortsätta
while (minBool)
{
//n för ny rad, t för tabb
//Skriver ut text
Console.WriteLine("\n\tGör ett val: ");
Console.WriteLine("\n\t[1]Lägg till ett föremål");
Console.WriteLine("\t[2]Skriv ut alla föremål");
Console.WriteLine("\t[3]Sök i ryggan");
Console.WriteLine("\t[4]Rensa ryggan");
//Deklarerar en if
//
if (Int32.TryParse(Console.ReadLine(), out menyVal)) { }
else
{
//ANNARS skriver programmet ut text
Console.WriteLine("\tNågon blev fel! Vänligen skriv en siffra 1-4");
}
//Deklarerar en switch som har värdet av int menyVal
switch (menyVal)
{
case 1:
Console.WriteLine("\t5 föremål får plats i ryggan. Välj ett av facken 0-4");
//Deklarerar en int
int Val;
//
int.TryParse(Console.ReadLine(), out Val);
//Deklarerar en if med int Val som jämförs (jämförelseoperatorn) med index 0
//Om något ligger i index 0, kommer texten i nedstående Console.WriteLine skrivas ut
if (Val == 0)
{
// Om värdet för 0 är detsamma som användare skriver, kommer texten nedan skrivas ut
if (minRygga[0] != "")
{
Console.WriteLine("\tDet ligger redan något här, vänligen prova ett annat fack!");
}
//Deklarerar en else som innebär att om det inte ligger något i index 0, skriver den ut texten nedan.
//Refererar till stringVektorn minRygga med index [0] som har värdet av en Console.WriteLine, det användaren matar in.
//Skapae en Console.WriteLine som skriver ut texten + det användare matat in i index 0.
else
{
Console.Write("\tFöremål: ");
minRygga[0] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till" + " " + minRygga[0] + " i fack 0!");
}
}
//Deklarerar en if med int Val som jämförs (jämförelseoperatorn) med index 1
if (Val == 1)
{
//Om strängvärdet minRygga med index 1 är upptagen, kommer texten nedan skrivas ut
if (minRygga[1] != "")
{
Console.WriteLine("\tDu har redan ett föremål i det här facket, försök igen med ett annat fack!");
}
//Annars kommer texten "Föremål" nedan skrivas ut
//Refererar till strängvärdet minRygga med index 1, värde av en Console.ReadLine. Det användaren matar in.
//Console.WriteLine skriver ut texten + det användaren skriver in.
else
{
Console.Write("\tFöremål: ");
minRygga[1] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till" + " " + minRygga[1] + " i fack 1!");
}
}
//Deklarerar en if med int Val som jämförs (jämförelseoperatorn) med index 2.
if (Val == 2)
{
///Om strängvärdet minRygga med index 2 är upptagen, kommer texten nedan skrivas ut
if (minRygga[2] != "")
{
Console.WriteLine("\tDet ligger redan något här, vänligen prova ett annat fack!");
}
//Annars kommer texten "Föremål" nedan skrivas ut
//Refererar till strängvärdet minRygga med index 2, värde av en Console.ReadLine. Det användaren matar in.
//Console.WriteLine skriver ut texten + det användaren skriver in.
else
{
Console.Write("\tFöremål: ");
minRygga[2] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till" + " " + minRygga[2] + " i fack 2!");
}
}
if (Val == 3)
{
if (minRygga[3] != "")
{
Console.WriteLine("\tDet ligger redan något här, vänligen prova ett annat fack!");
}
//Annars kommer texten "Föremål" nedan skrivas ut
//Refererar till strängvärdet minRygga med index 1, värde av en Console.ReadLine. Det användaren matar in.
//Console.WriteLine skriver ut texten + det användaren skriver in.
else
{
Console.Write("\tFöremål: ");
minRygga[3] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till" + " " + minRygga[3] + " i fack 3!");
}
}
if (Val == 4)
{
if (minRygga[4] != "")
{
Console.WriteLine("\tDet ligger redan något här, vänligen prova ett annat fack!");
}
//Annars kommer texten "Föremål" nedan skrivas ut
//Refererar till strängvärdet minRygga med index 1, värde av en Console.ReadLine. Det användaren matar in.
//Console.WriteLine skriver ut texten + det användaren skriver in.
else
{
Console.Write("\tFöremål: ");
minRygga[4] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till" + " " + minRygga[4] + " i fack 4!");
}
}
break;
case 2:
// Foreach skriver ut alla item för varje värde i rygga
foreach (string item in minRygga)
{
Console.WriteLine(item);
}
break;
case 3:
// Ordsökning
Console.Write("\tSkriv in ett sökord: ");
string sökord = Console.ReadLine();
for (int i = 0; i < minRygga.Length; i++)
{
if (minRygga[i].ToLower() == sökord.ToLower())
Console.WriteLine("\tDu har en " + minRygga[i] + " i din rygga");
}
break;
case 4:
for (int i = 0; i < 4; i++)
{
minRygga[i] = "";
}
Console.WriteLine("\tDin rygga är nu tom");
break;
case 5:
Console.ReadLine();
minBool = false;
break;
}
}
}
}
}
if (Val >= 0 && Val <= 4)
{
if (minRygga[Val] != "")
{
Console.WriteLine("\tDet ligger redan något här, vänligen prova ett annat fack!");
}
else
{
Console.Write("\tFöremål: ");
minRygga[Val] = Console.ReadLine();
Console.WriteLine("\n\tDu har lagt till " + minRygga[Val] + " i fack " + Val);
}
}
Tusen tack! Då förstår jag när && operatorn kan användas :)