Autor Beitrag
FabianClassen
Hält's aus hier
Beiträge: 11

WIN XP
Java (JEdit, NetBeans), C#(VS 2008 Express)
BeitragVerfasst: Di 16.06.09 21:39 
Hi
ich habe folgende Schleife:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
while(eingabe != 'n' && eingabe != 'y')
            {
                eingabe = (char)(Console.Read());
                if (eingabe != 'y' && eingabe != 'n')
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Achtung: Falsche Eingabe!");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }


In ihr soll einfach nur überprüft werden, ob der Nutzer 'y' für "yes" oder 'n' für "no" eingibt.
Bei einer falschen Eingabe wird obwohl ich nur einmal diese Ausgabe will, dreimal "Achtung: Falsche Eingabe" ausgegeben.
Aber wieso das so ist, verstehe ich nicht ;)

Ich hoffe ihr könnt mir helfen.

MFG
Fab
;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 16.06.09 21:46 
Ich nehme an die beiden Zeilenumbruchszeichen kommen noch dazu und werden in den beiden weiteren Durchläufen gelesen. ;-)
FabianClassen Threadstarter
Hält's aus hier
Beiträge: 11

WIN XP
Java (JEdit, NetBeans), C#(VS 2008 Express)
BeitragVerfasst: Di 16.06.09 21:48 
Kann ich die denn irgendwie löschen?

In C++ wäre das ja z.B.
ausblenden Quelltext
1:
cin.sync();					


MFG
Fab
;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 16.06.09 21:53 
Ich würde es so machen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
            string eingabe = "";
            while (eingabe != "n" && eingabe != "y")
            {
                eingabe = Console.ReadLine();
                if (eingabe != "y" && eingabe != "n")
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Achtung: Falsche Eingabe!");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
FabianClassen Threadstarter
Hält's aus hier
Beiträge: 11

WIN XP
Java (JEdit, NetBeans), C#(VS 2008 Express)
BeitragVerfasst: Di 16.06.09 21:57 
Danke
jetzt klappt es prima ;)

MFG
Fab
;)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 17.06.09 09:25 
Da du sowieso nur ein Zeichen (eine Taste) abfragen willst, halte ich Console.ReadKey() für besser geeignet. Jürgen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 17.06.09 09:28 
Dann kommt die Eingabe allerdings sofort an und der Benutzer kann nicht noch korrigieren. Wenn das so gewünscht ist, ist das natürlich passender.

Üblich ist meistens jedoch, dass man erst mit Enter bestätigen muss. Und in den meisten Fällen finde ich das auch besser.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 17.06.09 09:31 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Üblich ist meistens jedoch, dass man erst mit Enter bestätigen muss. Und in den meisten Fällen finde ich das auch besser.

Gut, du hast recht, in den meisten Fällen... Jürgen
FabianClassen Threadstarter
Hält's aus hier
Beiträge: 11

WIN XP
Java (JEdit, NetBeans), C#(VS 2008 Express)
BeitragVerfasst: Mi 17.06.09 12:25 
Danke ihr beiden ;)

MFG
Fab
;)