Benutzereingaben von der Konsole in einen bool umwandeln

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB.neter0101.

    Benutzereingaben von der Konsole in einen bool umwandeln

    Hallo,

    ich habe mich etwas mit C# beschäftigt und dort einmal ausprobiert, wie Benutzereingaben von der Konsole aus in verschiedene Datentypen umgewandelt werden können.

    Z.B. kann ich folgendes Ausführen:

    C#-Quellcode

    1. string input = Console.ReadLine();
    2. int val = int.Parse(input);


    Ich könnte an dieser Stelle eine weitere Variable einführen und dann beispielsweise eine Multiplikation der beiden Werte ausführen, soweit so gut.

    C#-Quellcode

    1. using System;
    2. public class Program
    3. {
    4. public static void Main()
    5. {
    6. Console.WriteLine("Hello World");
    7. string inp = Console.ReadLine();
    8. int x = int.Parse(inp);
    9. Console.WriteLine(x*x);
    10. }
    11. }


    Für mich wird es interessant, wenn es um boolesche Werte geht. Ich bezwecke folgendes: Der Nutzer gibt 0 oder 1 ein, dies entspricht dann true oder false. Die Idee war folgende:

    C#-Quellcode

    1. string inp2 = Console.ReadLine();
    2. bool y = bool.Parse(inp2);
    3. Console.WriteLine(y);


    Dies funktioniert aber nur, wenn ich als string "true" oder "false" eingebe. Warum ist das so? 1 oder 0 ist doch viel schneller getippt...

    Meine Behelfslösung würde dann in etwa so aussehen:

    C#-Quellcode

    1. using System;
    2. public class Program
    3. {
    4. public static void Main()
    5. {
    6. bool inp_bool;
    7. string inp3 = Console.ReadLine();
    8. if(inp3 == "0")
    9. {
    10. inp_bool = false;
    11. }
    12. else if(inp3 == "1")
    13. {
    14. inp_bool = true;
    15. }else
    16. {
    17. Console.WriteLine("Falsche Eingabe");
    18. inp_bool = false;
    19. }
    20. Console.WriteLine(inp_bool);
    21. }
    22. }


    Die Frage an dieser Stelle, verwende ich bool.Parse() einfach nur nicht richtig, sodass bool.Parse() auch mit 0 oder 1 zurecht käme? Die Zweite Frage schließt sich an den letzten Code an, ob das auch irgendwie eleganter geht?

    C#-Quellcode

    1. static void Main(string[] args)
    2. {
    3. string x = Console.ReadLine();
    4. bool y = x == "1";
    5. Console.WriteLine(y);
    6. Console.ReadLine();
    7. }


    Sollte so gehen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    VB.neter0101 schrieb:

    sodass bool.Parse() auch mit 0 oder 1 zurecht käme?
    Das sind doch Sachen, die Du mit nem Einzeiler in VB.NET ganz eben fix ausprobieren kannst.
    Das Gegenrichtung einer solchen Konvertierung wäre .ToString().
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!