C# Aus der While Schleife & Switch rauskommen?
servus,
ich habe versucht die Grundlage für den Münzeneinwurf zu coden, kann aber nicht aus der Schleife rauskommen, da immer wenn ich Enter drücke, was dafür sorgen soll, dass die Schleife endet, jedesmal 10 Cent zum Guthaben addiert werden.
Code:
while (choosedCoin.Key != ConsoleKey.Enter)
{
switch (choosedCoin.Key)
{
case ConsoleKey.F3:
depositedAmount = depositedAmount + 200;
Console.WriteLine("| Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F4:
depositedAmount = depositedAmount + 100;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F5:
depositedAmount = depositedAmount + 50;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F6:
depositedAmount = depositedAmount + 20;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F7:
depositedAmount = depositedAmount + 10;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F8:
depositedAmount = depositedAmount + 5;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F9:
depositedAmount = depositedAmount + 2;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
case ConsoleKey.F10:
depositedAmount = depositedAmount + 1;
Console.WriteLine("Your current Credit: {0} € ", depositedAmount/100);
break;
default:
Console.WriteLine("\n");
Console.Write("# Unidentified Key, try again! ");
break;
}
DepositCoin(Console.ReadKey());
}
2 Antworten
Du updates "consoleCoin" ja nicht innerhalb der Schleife, wie sollte sich da dann etwas tun?
Das ist ja dasselbe wie im Originalcode, nur auf zwei Zeilen aufgeteilt.
Ne, der wesentliche Unterschied ist, dass "consoleCoin" hier explizit gesetzt wird, das ist im Originalcode nicht der Fall.
Stimmt. Dann brechen nacheinander alle Rekursionsstufen ihre Schleife ab. :-) Einfach in Deinem Code die DepositCoin-Zeile weglassen und fertig.
Der Code ist aber faktisch rekursiv. Siehe 1. Kommentar unter meiner Antwort. Die Methode DepositCoin ist die Methode, welche die Schleife aus der Frage enthält.
Diese Information hatte ich zu dem zeitpunkt nicht, als ich meinen Kommentar schrieb.
Wann soll die Schleife denn genau verlassen werden? Und was macht "DepositCoin(Console.ReadKey())"? Ruft das dieselbe Methode wieder auf, in der dieser Code steht?
genau, das ist die Methode um sozusagen Coins auszuwählen, die Methode soll sich solange wiederholen, bis der User Enter gedrückt hat!
Autsch! Das macht man aber nicht als Rekursion! Dafür hast Du doch die Schleife.
Mach einfach diese eine Zeile am Schluss raus, wo die Funktion sich selbst wieder aufruft und ersetze sie durch
chooseCoing = Console.ReadKey();
vielen Dank leute, ich fang grade mit dem Programmieren an... entschuldigt die Dummheiten :|
wie macht man es? könntest du mir helfen?