C# Zahlen eingeben - kann jemand helfen?

... komplette Frage anzeigen

2 Antworten

Wie geri3d schon sagte, du liest nur einmal eine Zahl ein und endest damit in einer Endlosschleife (außer man gibt 0 ein). Die Eingabe gehört somit in die Schleife, da sich der Wert von zahl1 nicht verändert.

Hier wäre meine Lösung

var result = 0d;
double z;
do
{
    z = double.TryParse(Console.ReadLine(), out z) ? z : 0;
    result += z;
    Console.WriteLine(result);
} while (Math.Abs(z) > 0.000000001d);

Du musst außerdem den Datentypen (string, double etc) nicht explizit angeben, wenn der Typ schon Feststeht. z.B. double ergebnis = 0; wird zu var ergebnis = 0. Um noch sicher zu gehen, dass ergebnis double ist schreibe 0d.

Verwende statt double.Parse double.TryParse, da du nicht extra die Exception bei falscher Eingabe abfangen musst.

Lass dich nicht vom Math.Abs verwirren, bei Fließkommazahlen prüft man normalerweise nicht auf einen genauen Wert ab.

Antwort bewerten Vielen Dank für Deine Bewertung
double ergebnis = 0;

und das Do { gehört vor dem

string s = System.Console.ReadLine();

dann müsste es klappen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Burcub75
30.03.2016, 12:38

klappt irgendwie trz nicht :( stimmt der Rest denn?

0