schleifen-Problem
-
habe ein Problem mit der Schleifensetzung und zwar wollte ich eine prüfung
falls der eingegebene Betrag höherist als 2€ dann soll er mekern und maximal 2 Euro berechnen
könnt ihr mir das zeigen wie das geht.hier ist mein code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TicketSystem { class Program { static void Main(string[] args) { double betrag; double dauer=50, viertelstunde=15; double Parkzeit; int eingabe=0; do { Console.Clear(); Console.WriteLine("Parscheinsystem"); //--ausgabe der information Console.WriteLine("------------------------------------"); //--ausgabe der information Console.WriteLine(); //--ausgabe der information Console.WriteLine(); //--ausgabe der information Console.WriteLine("50 cent pro viertel Stunde."); //--ausgabe der information Console.WriteLine("maximale dauer 1Std."); //--ausgabe der information Console.WriteLine("geben sie einen Betrag ein Max. 2 Euro"); //--ausgabe der information string userInput = Console.ReadLine(); double ergebnis; if (double.TryParse(userInput, out ergebnis)) { Console.Clear(); Console.WriteLine("Gebe deinen Betrag ein"); betrag = Convert.ToDouble(Console.ReadLine()); //--eingabe des betrags Parkzeit = (viertelstunde * (betrag * 100)) / dauer; Console.WriteLine("Sie haben eine Parkzeit von {0},{1}", Parkzeit, " Minuten"); DateTime start = DateTime.Now; DateTime end = start.AddMinutes(Parkzeit); Console.WriteLine("-------------------------------------------"); Console.WriteLine("Ihr Parkschein "); Console.WriteLine("Sie Stehen seit {0} ", start); Console.WriteLine("Ihre Parkdauer ist {0} ", Parkzeit); Console.WriteLine("Ihre Parkdauer endet um {0} ", end); Console.WriteLine("-------------------------------------------"); Console.WriteLine("möchten sie noch einen Parkschein dafür drücke 0"); eingabe = Convert.ToInt16(Console.ReadLine()); } else { Console.WriteLine("Falsche Zahl eingegeben um neu auszuwählen drücke 0"); // falscher Fall } } while (eingabe == 0); } } }
-
if(Betrag > 2) mecker(); else tuwas();
-
habe es soweit ok aber etz ist noch ein problem aufgetreten.
wenn man als "userinput" ein char eingibt dann tritt ja der (if)-fall ein soweit ist das
schon in ordnung wenn als "userinput" double eingegeben wird und der betrag zu hoch ist
dann tritt der (while)-fall ein und er wartet bis der "betrag" kleiner wird.das geht noch doch jetzt zur hauptfrage:
wie kann man die fehlermeldung beheben die kommt wenn in der while-schleife ein char
anstatt eines double.string userInput = Console.ReadLine(); double ergebnis; if (double.TryParse(userInput, out ergebnis)) { Console.Clear(); Console.WriteLine("Gebe deinen Betrag ein"); betrag = Convert.ToDouble(Console.ReadLine()); //--eingabe des betrags while (betrag > 2) { Console.WriteLine("Zuviel Geld eingegeben maximal 2€"); betrag = Convert.ToDouble(Console.ReadLine()); }