Veröffentlicht 25. Juni 20214 j Hallo zusammen, ich habe Probleme bei meinem Taschenrechner. Das fängt damit an dass die Zahlen und Rechenarten nicht erkannt werden und das Programm bei den Zeilen 22-24 Probleme hat aber ich kann dies nicht finden. Ich bitte um Hilfe, danke im voraus. Int32 zahl1, zahl2, ergebnis; string art; zahl1 = Convert.ToInt32(Console.ReadLine()); art = Convert.ToString(Console.ReadLine()); zahl2 = Convert.ToInt32(Console.ReadLine()); if (Console.ReadLine() == "plus") { ergebnis = zahl1 + zahl2; Console.WriteLine(ergebnis); } else if (Console.ReadLine() == zahl1 + "minus" + zahl2) { ergebnis = zahl1 - zahl2; Console.WriteLine(ergebnis); } else if (Console.ReadLine() == zahl1 + "mal" + zahl2) { ergebnis = zahl1 * zahl2; Console.WriteLine(ergebnis); } else if (Console.ReadLine() == zahl1 + "geteilt" + zahl2) { ergebnis = zahl1 / zahl2; Console.WriteLine(ergebnis); } Console.ReadKey();
25. Juni 20214 j Warum liest du oben erstmal zwei Zahlen und die Rechenart ein und benutzt das dann nicht weiter? Benutz doch die Variablen, um zu prüfen welcher If-Block auszuführen ist.
26. Juni 20214 j if (art == "plus") { ergebnis = zahl1 + zahl2; Console.WriteLine(ergebnis); } Vergleich die String Dafür hast du sie doch oben erstellt Bearbeitet 26. Juni 20214 j von TobiasDressler
27. Juni 20214 j if (Console.ReadLine() == "plus") Der Nutzer muss also nachdem er z.B. 1 <Enter> plus <Enter> 2 <Enter> eingegeben hat nocheinmal plus <Enter> eingeben, damit der IF-Block ausgeführt wird. Vermutlich nicht ganz, was du wolltest, oder? else if (Console.ReadLine() == zahl1 + "minus" + zahl2) Ok, du vergleichst den Rückgabestring von Console.Readline() mit einem aus zahl1, "minus" und zahl2 zusammengesetztem String. Mit den Zahlen von oben (zahl1 = 1, zahl2 = 2) müsste man hier "1minus2" eingeben, damit in den IF-Block gesprungen wird Die Programmierung macht genau das, was du geschrieben hast Evtl. noch mal genau überlegen, welche Schritte nötig sind: Was muss ich vom Benutzer abfragen, wie lege ich das in Variablen ab, wie muss ich damit weiter verfahren.. Es hilft auch ungemein, wenn das Programm auch mal was ausgibt - z.B. erkennst Du schnell an welcher Stelle das Programm ist wenn zu an die entsprechende Stelle einfügst: Console.WriteLine("Bitte Zahl1 eingeben");
28. Juni 20214 j welche konkrete Probleme hast du denn? Du schweifst hier nämlich auch schon wieder ab!
30. Juni 20214 j Autor Am 27.6.2021 um 07:56 schrieb RipperFox: if (Console.ReadLine() == "plus") Der Nutzer muss also nachdem er z.B. 1 <Enter> plus <Enter> 2 <Enter> eingegeben hat nocheinmal plus <Enter> eingeben, damit der IF-Block ausgeführt wird. Vermutlich nicht ganz, was du wolltest, oder? else if (Console.ReadLine() == zahl1 + "minus" + zahl2) Ok, du vergleichst den Rückgabestring von Console.Readline() mit einem aus zahl1, "minus" und zahl2 zusammengesetztem String. Mit den Zahlen von oben (zahl1 = 1, zahl2 = 2) müsste man hier "1minus2" eingeben, damit in den IF-Block gesprungen wird Die Programmierung macht genau das, was du geschrieben hast Evtl. noch mal genau überlegen, welche Schritte nötig sind: Was muss ich vom Benutzer abfragen, wie lege ich das in Variablen ab, wie muss ich damit weiter verfahren.. Es hilft auch ungemein, wenn das Programm auch mal was ausgibt - z.B. erkennst Du schnell an welcher Stelle das Programm ist wenn zu an die entsprechende Stelle einfügst: Console.WriteLine("Bitte Zahl1 eingeben"); Danke, das hat mir geholfen. Jetzt funkt es
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.