CodeGym /Kurse /C# SELF /Tastatureingabe

Tastatureingabe

C# SELF
Level 2 , Lektion 5
Verfügbar

1. Einführung

Bis jetzt haben wir Programme geschrieben, die wie ein Radio waren: Sie haben was erzählt, aber nie auf deine Worte reagiert. Klar, damit kommt man nicht weit! Das Ziel der meisten Programme ist es, irgendwas Nützliches für den User zu machen. Deshalb muss man oft ermöglichen, dass der User Daten über die Tastatur eingibt.

Zum Beispiel:

  • Ein Taschenrechner erwartet, dass du Zahlen und eine Operation eingibst.
  • Formulare auf einer Website wollen deinen Namen, E-Mail und Adresse, um eine Anfrage zu bearbeiten.
  • Computerspiele fragen nach dem Namen des Spielers.

Heute geben wir unserer App ein Mikrofon! Oder halt Ohren, wie du willst :) Bereit? Los geht's.

2. Kennenlernen von Console.ReadLine()

Console.ReadLine() ist eine Funktion (oder "Befehl"), mit der das Programm Daten bekommt, die der User über die Tastatur eingibt.

Wenn das Programm bei Console.ReadLine() ankommt, stoppt es und... wartet geduldig, bis du was tippst und Enter drückst. Alles, was du bis zum Drücken von Enter eingibst, gilt als eine Textzeile. Diese Zeile geht zurück ins Programm – als ob der User dir einen Zettel durchs Fenster reicht.

Basic-Beispiel

// Wir fragen den User nach seinem Namen und begrüßen ihn
Console.WriteLine("Wie heißt du?");
string userName = Console.ReadLine(); 				// Hier wartet das Programm auf Input!
    
Console.WriteLine("Hallo, " + userName + "!");

Wie das läuft:

  • Auf dem Bildschirm erscheint: Wie heißt du?
  • Du gibst zum Beispiel Andrej ein und drückst Enter.
  • Die Variable userName bekommt den Wert "Andrej".
  • Auf dem Bildschirm steht: Hallo, Andrej!

Direkt ein Hinweis: Alles, was Console.ReadLine() zurückgibt, ist IMMER ein String (Typ string). Auch wenn der User eine Zahl eingibt, ist das trotzdem ein String!

3. Beispiele

Schauen wir uns an, wie Console.ReadLine() in der Praxis genutzt wird.

Beispiel 1: Usernamen eingeben

Console.WriteLine("Gib deinen Namen ein:");
string name = Console.ReadLine();
Console.WriteLine("Willkommen, " + name + "!");

Beispiel 2: Ausgabe in einer Zeile

Mit dem Operator + kannst du Text und Input direkt zusammenfügen.

Console.Write("Deine Lieblingsfarbe: ");
string color = Console.ReadLine();
Console.WriteLine("Cool! Deine Lieblingsfarbe ist " + color + ".");
Beachte:

In diesem Beispiel wird Console.Write (ohne Zeilenumbruch) genutzt, damit der User-Input direkt nach der Frage kommt.

Beispiel 3: Mehrere Eingaben hintereinander

Lass uns einen Mini-Fragebogen bauen:

Console.Write("Wie heißt du? ");
string name = Console.ReadLine();

Console.Write("Wie alt bist du? ");
string age = Console.ReadLine(); // erstmal als String

Console.WriteLine("Du heißt " + name + " und bist " + age + " Jahre alt.");

Du siehst dann:

Wie heißt du? Wika
Wie alt bist du? 23
Du heißt Wika und bist 23 Jahre alt.

4. Zahleneingabe: Konvertierung

Hier lauert eine typische Falle für Anfänger! Console.ReadLine() gibt immer einen String zurück, auch wenn der User 123 eingibt.

Wenn du eine Zahl willst, musst du den String in den passenden Zahlentyp umwandeln (zum Beispiel int). Dafür nutzt man in C# Konvertierungs-Methoden wie int.Parse() oder Convert.ToInt32() – das hatten wir schon in der letzten Vorlesung.

Beispiel: Wir fragen nach dem Alter

Console.Write("Wie alt bist du? ");
string input = Console.ReadLine();         // input = "27", zum Beispiel
int age = int.Parse(input);                // Wir machen aus dem String "27" die Zahl 27
Console.WriteLine("In einem Jahr bist du " + (age + 1));
Achtung:

Wenn der User keine Zahl eingibt, schmeißt das Programm einen Fehler (FormatException). Später lernen wir, wie man das robuster macht, aber für einfache Experimente reicht das erstmal.

5. Fehler, die dir garantiert passieren

Vergessen, in eine Zahl zu konvertieren:

Du versuchst, den Wert aus Console.ReadLine() als Zahl zu nutzen, ohne ihn umzuwandeln.

string input = Console.ReadLine();
int sum = input + 5; // Fehler! Einen String kann man nicht mit einer Zahl addieren.

Du musst in int konvertieren:

int sum = int.Parse(input) + 5;

Variable nicht deklariert:

name = Console.ReadLine(); // Fehler! Die Variable name ist nicht deklariert.

Erst deklarieren: string name = Console.ReadLine();

Reihenfolge von Input und Output vertauscht:

Anfänger machen oft lustige Fehler. Aber Profis auch. Nur halt mit Pokerface :)

string name = Console.ReadLine();
Console.WriteLine("Gib den Namen ein: " + name); // Erst fragen, dann lesen!

Richtige Reihenfolge:

Console.Write("Gib den Namen ein: ");
string name = Console.ReadLine();
Console.WriteLine("Hallo, " + name);

Nützlicher Hinweis

Auch wenn du Console.ReadLine() ohne eine Frage nutzt (zum Beispiel einfach string x = Console.ReadLine();), wartet das Programm auf Input. Aber der User weiß nicht, was er eingeben soll! Gib ihm deshalb immer einen klaren Hinweis mit Console.Write() oder Console.WriteLine().

1
Umfrage/Quiz
Einführung in die Typen int und string, Level 2, Lektion 5
Nicht verfügbar
Einführung in die Typen int und string
Einführung in die Typen int und string
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION