Entwickler-Ecke
Sonstiges (.NET) - Zahl vergleichen und entsprechende Ausgabe machen
interessierter - So 15.04.12 00:48
Titel: Zahl vergleichen und entsprechende Ausgabe machen
Hallo Zusammen
Hab noch ne Frage zu meinem c# Konsolenprogramm.
Man gibt eine Zahl ein. Wenn die zahl kleiner 1 oder grösser 100 ist, soll das programm solange nach nach einer neuen zahl fragen bis die Bedingung erfüllt ist.
Ich habe angefangen den Code zu schreiben und für mich ist er irgendwie völlig logisch, jedoch tut das er nicht ganz das was ich will. Ich glaube es fehlt nur noch ein Detail.
Wenn ich bei der Eingabe etwas zwischen 1 und 100 eingebe klappt es. Wenn ich testhalber etwas unter 1 oder über 200 eingebe, hört die Schleife nicht mehr auf.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Console.WriteLine("Zahl eingeben"); string Eingabe; Eingabe = Console.ReadLine(); float x = float.Parse(Eingabe);
if (x < 1 | x > 100)
do { Console.WriteLine("neue zahl eingeben"); Eingabe = Console.ReadLine(); { while (x < 1 | x > 100); |
CODE ENDE
Liebe Grüsse
interessierter
Moderiert von
Kha: C#-Tags hinzugefügt
Kha - So 15.04.12 02:11
Schau noch einmal nach, an welchen Stellen du überhaupt x veränderst ;) .
Th69 - So 15.04.12 11:27
Und desweiteren verwendest du den falschen Operator, benutze anstatt dem binären Operator | den logischen Operator ||.
interessierter - So 15.04.12 15:22
Ich habe meinen Code nochmals Schrittweise analysiert, aber kann nicht erkennen wo der Fehler liegt.
Meiner Auffassung nach verändere ich x nie. Einfach formuliert sage ich dem Computer ja folgendes:
1. Lies eine Zahl ein (wenn Zahl oke gebe Zahl aus)
sonst
2. Wenn Zahl kleiner 1 oder grösser hundert
3. Frage so lange nach eienr Zahl und lies sie ein, wie die Eingabe immernoch kleiner 1 oder grösser 100 ist
Wo liegt mein Denkfehler?
Th69 - So 15.04.12 15:46
Genau das ist ja dein Denkfehler: du fragst in der Schleife immer den Wert von x ab, änderst diesen aber nie - ergo Endlosschleife!
Du mußt natürlich auch in der Schleife die Eingabe nochmals mittels x = float.Parse(Eingabe); parsen.
P.S. Die Parse-Methode hat den Nachteil, daß eine Exception geworfen wird, wenn keine Zahl vorliegt - besser ist die Verwendung der TryParse-Methode.
interessierter - So 15.04.12 15:53
jetzt verstehe ich :) :)
Ganz einfach ausgedrückt, weiss das Programm innerhalb der Schleifedann nicht mehr das es
ein float.Parse ist. Deswegen muss ich dann nochmals sagen das es ein float.parse ist.
Jetzt ist mir natürlich alles sofort klar. Danke für den Hinweis mit try.parse. Werde mich mal erkundigen wie das zu benutzen ist.
Herzlichen Dank
Grüsse
interessierter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!