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