2 svar
130 visningar
CsharpStudent behöver inte mer hjälp
CsharpStudent 80
Postad: 17 nov 2021 20:06

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;
                }
            }
        }
    }
}
Lindehaven 820 – Lärare
Postad: 17 nov 2021 20:23

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);

    }

}

CsharpStudent 80
Postad: 17 nov 2021 20:25

Tusen tack! Då förstår jag när && operatorn kan användas :) 

Svara
Close