Lädt...

Eingabe

Tippe leaf, nachdem das Programm gestartet hat, und der Bildschirm zeigt leaf. Dieses Wort steht nicht in der Datei. Die Pine-Datei legt einen Namen an, plant, und wartet. Du tippst leaf und drückst Enter. Console.WriteLine(plant) schreibt leaf. Bis jetzt bedeutete ein anderer Bildschirm, die Speicherzeile zu ändern, weil das Wort in der Datei zwischen Anführungszeichen saß. Behalte den öffentlichen Klassennamen Pine. Du installierst das SDK nicht erneut.

Die Datei wartet auf eine getippte Zeile

Öffne die Pine-Datei. Der Klassenname bleibt Pine. Diese Seite benennt den Typ nicht um. Innerhalb von Main ersetze die alte Speicherzeile, die Anführungszeichen hatte. Die neue Speicherzeile ist string plant = Console.ReadLine();. Das Schlüsselwort string sagt weiterhin, dass dieser Name Buchstaben hält. plant beginnt weiterhin mit kleinem p. Das =-Zeichen speichert weiterhin Buchstaben in diesem Namen. Neu ist die rechte Seite. Console.ReadLine() hat keine Anführungszeichen. Auf dieser Zeile steht kein leaf. Die Zeile fragt die Konsole nach einer getippten Zeile. Das Programm wartet dort, bis du Enter drückst. Wenn du Enter drückst, speichert ReadLine die Buchstaben, die du vor diesem Enter getippt hast. Es speichert Enter selbst nicht. Dann endet die Zeile am Semikolon. Speichern ist immer noch nicht Schreiben. Das Programm hat seine eigene Zeile noch nicht geschrieben.

Die Schreibzeile bleibt der bloße Name, dieselbe Form wie die Datei, die du auf der letzten Seite behalten hast: Console.WriteLine(plant);. Keine Anführungszeichen. C# liest den Namen plant, schreibt die Buchstaben, die dieser Name hält, und beendet die Zeile. Diese Buchstaben sind das, was ReadLine gerade gespeichert hat. Wenn du leaf getippt hast, schreibt das Programm leaf. Wenn du stem getippt hast, schreibt das Programm stem. Zwischen diesen beiden Läufen hat sich die Datei nicht geändert. Speichere die Datei.

Die Datei, die du behältst

Behalte diese Lehrform. Das Wort, das du tippen wirst, steht nicht in der Datei. Suche in der Datei nach den Buchstaben l, e, a, f. Sie sind nicht da. Die gespeicherte Zeile heißt plant. Die Schreibzeile nutzt plant und enthält keine Anführungszeichen.

the file you keep

csharp
using System;

public class Pine
{
    public static void Main()
    {
        string plant = Console.ReadLine();
        Console.WriteLine(plant);
    }
}

Lies die Datei von oben und entscheide, was den Bildschirm erreichen kann. using System; bereitet kurze Namen vor. public class Pine benennt den Typ. public static void Main() ist der Startpunkt der Laufzeit. Keines dieser Wörter sind Buchstaben für den Bildschirm. string plant = Console.ReadLine(); speichert eine getippte Zeile in plant. Es schreibt allein nichts. Console.WriteLine(plant); ist die einzige Schreibzeile. Sie schreibt die gespeicherten Buchstaben und beendet die Zeile. Der Name plant wird nicht geschrieben. Console wird nicht geschrieben. Das Semikolon wird nicht geschrieben.

Was du tippst und was das Programm schreibt

Starte es mit dotnet run. Nach diesem Befehl wartet das Programm auf Console.ReadLine(). Es ist noch nicht fertig und hat leaf noch nicht geschrieben, weil du noch keine Zeile gegeben hast. Der Cursor steht auf einer frischen Zeile. Tippe die Buchstaben l, e, a, f. Das Terminal zeigt diese Buchstaben, während du die Tasten drückst. Dieses Anzeigen ist das Terminal, das deine Tasten wiederholt. Es ist nicht Console.WriteLine. Dann drücke Enter.

Enter beendet das Warten. ReadLine speichert leaf in plant und speichert Enter nicht. WriteLine schreibt dann leaf und beendet die Zeile. Du siehst leaf, und darunter wieder leaf. Das erste leaf sind die Tasten, die das Terminal gezeigt hat. Das zweite leaf ist das Programm. Die Programmzeile hat keine Anführungszeichen. Es sind vier Buchstaben, dann endet die Zeile. Das Programm endet nach dieser Schreibzeile. Wenn das einzige leaf, das du beurteilen willst, die Programmzeile ist, beurteile die Zeile, die nach dem Enter erscheint.

Wenn die Programmzeile plant ist, hat die Schreibzeile Anführungszeichen um plant. Die Datei, die du behältst, hat das nicht. Wenn dotnet run sofort leaf schreibt und nie wartet, speichert die Datei noch ein Wort in Anführungszeichen, etwa string plant = "leaf";, und ruft nie ReadLine auf. Suche nach Anführungszeichen um leaf. Die Datei, die du behältst, hat keine. Du installierst das .NET SDK nicht erneut für einen Bildschirm, der das falsche Wort zeigt.

Großbuchstaben werden so kopiert, wie du sie tippst. Wenn du Leaf mit großem L tippst und Enter drückst, ist die Programmzeile Leaf. Die Datei enthält diese Buchstaben weiterhin nicht. Ein leeres Enter ist auch eine echte Zeile. Drücke Enter, ohne Buchstaben zu tippen. ReadLine speichert keine Buchstaben in plant. WriteLine schreibt eine Zeile ohne Buchstaben. Das Programm lief. Das Warten endete, weil Enter ankam. Die Datei, die du behältst, ist die, die du mit leaf prüfst, vier kleine Buchstaben.

Ein Leerzeichen bleibt in der Zeile

ReadLine liest bis Enter, nicht bis zu einem Leerzeichen. Tippe leaf, dann ein Leerzeichen, dann stem, dann Enter. Die in plant gespeicherten Buchstaben sind leaf, ein Leerzeichen und stem. Console.WriteLine(plant) schreibt leaf stem. Das Leerzeichen ist ein gespeichertes Zeichen, genauso wie ein Leerzeichen in Anführungszeichen gespeichert wurde, als das Wort in der Datei lebte. Diese Seite schneidet die Zeile am Leerzeichen nicht ab. Die Datei, die du behältst, ist weiterhin der Ein-Zeilen-Leser. Du änderst nur, was du tippst, nicht die Datei, wenn du das Leerzeichen auf dem Bildschirm willst.

Zwei getippte Zeilen, zwei Enter

Ein Programm kann eine zweite Zeile nehmen. Unter der ersten Schreibzeile speichere eine neue Zeile im gleichen Namen, dann schreibe den Namen erneut. Die neue Speicherzeile ist plant = Console.ReadLine();. Sie beginnt nicht mit string. plant existiert bereits, also ersetzt diese Zeile nur die Buchstaben, die der Name hält. Die nächste Schreibzeile ist wieder Console.WriteLine(plant);. Das Programm wartet jetzt zweimal. Jedes ReadLine wartet auf sein eigenes Enter.

Das ist die zweite Datei. Es ist nicht die Datei, die du behältst. Die Datei, die du behältst, wartet einmal und schreibt einmal. Nutze diese zweite Form, wenn du zwei getippte Zeilen willst, und setze danach das einzelne ReadLine und das einzelne WriteLine wieder ein.

two typed lines

csharp
using System;

public class Pine
{
    public static void Main()
    {
        string plant = Console.ReadLine();
        Console.WriteLine(plant);
        plant = Console.ReadLine();
        Console.WriteLine(plant);
    }
}

Führe dotnet run aus. Das Programm wartet. Tippe leaf und drücke Enter. Das Terminal zeigt leaf, und das Programm schreibt leaf darunter. Das Programm wartet erneut. Es ist noch nicht fertig. Tippe stem und drücke Enter. Das Terminal zeigt stem, und das Programm schreibt stem darunter. Die Programmzeilen sind leaf, dann stem. Die widerhallenden Tasten sitzen über jeder dieser Zeilen. Wenn beide Programmzeilen leaf sagen, lief das zweite ReadLine nie, oder du hast zweimal leaf getippt. Wenn das Programm stem schreibt, bevor du eine zweite Zeile getippt hast, sitzt das zweite WriteLine nicht unter einem zweiten ReadLine. Der Bildschirm folgt der Reihenfolge der Zeilen in der Datei, und jedes Warten folgt dem ReadLine, das noch kein Enter erhalten hat.

Schreibe string nicht ein zweites Mal für denselben Namen. string plant = Console.ReadLine(); unter einer Zeile, die plant bereits angelegt hat, ist ein anderer Fehler. Diese Zeile versucht, plant erneut anzulegen. Der Build schreibt einen Fehler und bleibt nicht still. Die Reparatur ist, das zweite string zu löschen und plant = Console.ReadLine(); zu lassen. Der Name wird einmal angelegt. Spätere Zeilen ändern nur die Buchstaben, die er hält. In der Datei, die du behältst, gibt es überhaupt kein zweites ReadLine.

Anführungszeichen um den Namen schreiben den Namen

Die Schreibzeile in der Datei, die du behältst, ist Console.WriteLine(plant); ohne Anführungszeichen. Wenn du nach einer echten getippten Zeile Anführungszeichen um den Namen setzt, lautet die Zeile Console.WriteLine("plant");. Diese Anführungszeichen markieren Buchstaben für den Bildschirm. Die Buchstaben dazwischen sind p, l, a, n, t. C# sucht den Namen nicht nach. Du kannst leaf tippen und Enter drücken, und ReadLine kann leaf in plant speichern, und die Programmzeile zeigt trotzdem plant. Das getippte Wort wird nicht geschrieben, weil die Schreibzeile den Namen nie genutzt hat.

Das ist die dritte Datei. Es ist nicht die Datei, die du behältst. Behalte sie lange genug, um nach dem Tippen von leaf die einzelne Programmzeile plant zu sehen, und nimm die Anführungszeichen von der Schreibzeile wieder weg.

the name written in quotes after a read

csharp
using System;

public class Pine
{
    public static void Main()
    {
        string plant = Console.ReadLine();
        Console.WriteLine("plant");
    }
}

Der Name muss nach ReadLine existieren

C# liest die Datei von oben. Die Zeile, die plant füllt, muss über der Zeile stehen, die plant schreibt. Wenn du zuerst Console.WriteLine(plant); setzt und erst danach string plant = Console.ReadLine(); schreibst, nennt die Schreibzeile plant, bevor plant existiert. Der Build schreibt einen Fehler. Er bleibt nicht still. Es gibt keinen Bildschirm, dem du vertrauen kannst, während der Build einen Fehler schreibt. Die Reparatur ist, die ReadLine-Zeile wieder über die Schreibzeile zu legen.

Diese vierte Datei ist die kaputte Reihenfolge. Es ist nicht die Datei, die du behältst. Behalte sie nur, bis der Build den Fehler schreibt, und setze die ReadLine-Zeile danach wieder nach oben.

the name used before ReadLine

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine(plant);
        string plant = Console.ReadLine();
    }
}

WriteLine speichert keine getippte Zeile

Die Speicherzeile muss ReadLine aufrufen, nicht WriteLine. Wenn die Zeile string plant = Console.WriteLine(); ist, schreibt der Build einen Fehler. WriteLine schreibt auf den Bildschirm und gibt keine Buchstaben an einen Namen zurück. Es ist kein wartender Speicher. Es gibt kein getipptes leaf, dem du vertrauen kannst, während der Build einen Fehler schreibt. Die Reparatur ist, Console.ReadLine() wieder auf die rechte Seite von = zu setzen.

Diese fünfte Datei ist der falsche Speicheraufruf. Es ist nicht die Datei, die du behältst. Behalte sie nur, bis der Build den Fehler schreibt, und setze ReadLine danach zurück.

WriteLine used where ReadLine belongs

csharp
using System;

public class Pine
{
    public static void Main()
    {
        string plant = Console.WriteLine();
        Console.WriteLine(plant);
    }
}

Der Bildschirm ist die Zeile, die du getippt hast

Du kannst jetzt einen Namen von der Tastatur füllen und diese Zeile schreiben, ohne das Wort zwischen Anführungszeichen in der Datei zu setzen. string plant = Console.ReadLine(); wartet auf Enter und speichert die getippten Buchstaben. Console.WriteLine(plant); schreibt diese Buchstaben und beendet die Zeile. Ein zweites ReadLine wartet erneut. Anführungszeichen um den Namen schreiben die Buchstaben des Namens statt dessen. Die ReadLine-Zeile muss über der ersten Zeile sitzen, die den Namen nutzt. WriteLine auf der Speicherseite ist kein Speicher. Die nächste Seite beginnt mit Value Types, damit ein Name eine Zahl mit einem anderen Typ als string halten kann, während diese Seite bei einer getippten Buchstabenzeile bleibt.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
7
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt