Laden...

Methode: Nicht alle Codepfade geben einen Wert zurück

Erstellt von Senpaimon vor 3 Jahren Letzter Beitrag vor 3 Jahren 591 Views
S
Senpaimon Themenstarter:in
1 Beiträge seit 2020
vor 3 Jahren
Methode: Nicht alle Codepfade geben einen Wert zurück

Beschreibung:

<Hallo Liebe Community,
leider bekomm ich es bei folgender Methode nicht hin, den Wert zurückzugeben.
Die Fehlermeldung "nicht alle Codepfade geben einen Wert zurück" erscheint, egal was ich versuche. Vielen Dank schon mal für euere Hilfe!
>


namespace Monatsverwaltung_neu
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] aMonat = new string[12];
            Console.WriteLine("Monatsverwaltung");
            Console.WriteLine("================");

            Console.Write("Welchen Monat suchst du? ");
            string sucheMonat = Console.ReadLine();

            int Ergebnis = sucheInhalt(aMonat, sucheMonat);
            Console.WriteLine($"Diser ist an der {Ergebnis} Stelle im Array");
        }
        static int sucheInhalt(string[] aMonate, string sucheMonat)
        {
            for (int i = 0; i <= aMonate.Length; i++)
            {
                if (aMonate[i] == sucheMonat)
                {
                    return i;
                }
                else
                {
                    return 13;
                }
            }
        }
    }
}

Liebe Grüße
Simon

Schlagwörter: <Methoden, Rückgabewert>

D
261 Beiträge seit 2015
vor 3 Jahren

Sollte dein Array leer sein, wird kein Integer zurückgegeben. (Der Compiler muss damit rechnen, dass das Array auch leer sein kann)

PS: Außerdem tut dein Code glaube ich nicht das, was du davon erwartest.
Suchst du z. B. einen Monat der an der 3. Stelle im string-Array steht, wird er schon beim ersten Schleifendurchlauf im else-Zweig das return 13 ausführen und zurück in die Main springen

B
1 Beiträge seit 2020
vor 3 Jahren

Habe dir mal was kleines fertig gemacht, vielleicht kannst du damit was anfangen. Bei Unklarheiten kannst du dich gerne melden.


        static void Main(string[] args)
        {
            string[] Monate = new string[12] { "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" };
            int ErgebnisMonat;

            Console.WriteLine("Monatsverwaltung\r\n================");
            Console.Write("Welchen Monat suchst du?: ");

            ErgebnisMonat = GetBezeichnungMonat(Monate, Console.ReadLine());

            Console.WriteLine(ErgebnisMonat == -1 ? "Die Eingabe wurde nicht im Array gefunden!" : $"Der Monat ist die {ErgebnisMonat} Stelle im Array.");
            Console.ReadLine();
        }

        static int GetBezeichnungMonat(string[] Monate, string SearchValue)
        {
           for(int i = 0; i < Monate.Length; i++)
            {
                if(Monate[i].ToUpper() == SearchValue.ToUpper())
                {
                    return i;
                }
            }
            return -1;
        }