Übung: Ausgeben von Literalwerten

Abgeschlossen

In dieser Übung geben Sie Meldungen aus, die unterschiedliche Datentypen enthalten, und Sie erfahren mehr über die Bedeutung von Datentypen in C#.

Was ist ein Literalwert?

Ein Literalwert ist ein konstanter und unveränderlicher Wert. Bisher haben Sie eine Literalzeichenfolge an der Konsole ausgegeben. Das bedeutet, dass die Zeichenfolge bestehend aus den alphanumerischen Zeichen H, e, l, l, o usw. als Literal an der Konsole ausgegeben werden sollte.

Der Datentyp „string“ wird im Zusammenhang mit der Darstellung von alphanumerischen Wörtern, Ausdrücken oder Daten verwendet, nicht für Berechnungen. Welche anderen Literaldatentypen können ausgegeben werden?

Übung: Ausgeben unterschiedlicher Literaldatentypen

In C# gibt es zahlreiche Datentypen. Für den Anfang genügen jedoch fünf bis sechs Datentypen, weil diese die meisten Szenarios abdecken. Zeigen Sie nun eine Literalinstanz des Datentyps im Ausgabebereich an.

Hinweis

Bei der Arbeit im Codefenster werden Sie bald feststellen, dass bestimmte Syntax in unterschiedlichen Farben dargestellt wird (nach den Bereichen Schlüsselwörter, Operatoren, Datentypen usw.). Machen Sie sich allmählich mit diesen Farben vertraut. Dadurch können Sie Syntaxfehler schon beim Eingeben von Zeichen erkennen und effektiver mit dem Code arbeiten.

Verwenden von Zeichenliteralen

Wenn Sie nur ein einzelnes alphanumerisches Zeichen auf dem Bildschirm ausgeben möchten, erstellen Sie ein Zeichenliteral, indem Sie das alphanumerische Zeichen in einfache Anführungszeichen einschließen. Dabei steht char für die Abkürzung des englischen Begriffs character für Zeichen. In C# heißt dieser Datentyp offiziell „char“, wird aber häufig als „Zeichen“ bezeichnet.

  1. Fügen Sie im Code-Editor die folgende Codezeile hinzu:

    Console.WriteLine('b');
    
  2. Sehen Sie sich den eingegebenen Code an.

    Beachten Sie, dass der Buchstabe b in einfache Anführungszeichen ('b') eingeschlossen ist. Mit einfachen Anführungszeichen erstellen Sie ein Zeichenliteral. Denken Sie daran, dass Sie mit doppelten Anführungszeichen den Datentyp string erstellen.

  3. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. Im Ausgabefenster sollte das folgende Ergebnis angezeigt werden:

    b
    

Wenn Sie den folgenden Code eingeben:

Console.WriteLine('Hello World!');

wird folgende Fehlermeldung anzeigt:

(1,19): error CS1012: Too many characters in character literal

Beachten Sie die einfachen Anführungszeichen um Hello World!. Wenn Sie einfache Anführungszeichen verwenden, erwartet der C#-Compiler ein einzelnes Zeichen. In diesem Fall wurde die Syntax für Zeichenliterale zwar verwendet, es wurden aber stattdessen 12 Zeichen angegeben!

Verwenden Sie char wie den Datentyp string zur Darstellung (nicht zur Berechnung) eines einzelnen alphanumerischen Zeichens.

Verwenden von Integer-Literalen

Wenn Sie einen ganzzahligen numerischen Wert (keinen Bruch) an der Konsole ausgeben möchten, können Sie ein Integer-Literal verwenden. Der Begriff int ist die Abkürzung für den englischen Begriff „integer“, den Sie möglicherweise aus der Mathematik kennen und der „ganze Zahl“ bedeutet. In C# heißt dieser Datentyp offiziell „int“, wird aber häufig als „Integer“ (oder „ganze Zahl“) bezeichnet. Ein int-Literal erfordert keine zusätzlichen Operatoren wie string oder char.

  1. Fügen Sie im Code-Editor die folgende Codezeile hinzu:

    Console.WriteLine(123);
    
  2. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. An der Konsole sollte das folgende Ergebnis ausgegeben werden:

    123
    

Verwenden von Gleitkommaliteralen

Eine Gleitkommazahl ist eine Zahl, die ein Dezimaltrennzeichen (Komma) enthält, z. B. 3,14159. C# unterstützt drei Datentypen zur Darstellung von Dezimalzahlen: float, double und decimal. Jeder Typ unterstützt einen anderen Grad an Genauigkeit.

Float Type    Precision
----------------------------
float         ~6-9 digits
double        ~15-17 digits
decimal        28-29 digits

Die Genauigkeit gibt dabei die Anzahl der Ziffern nach dem Dezimaltrennzeichen an.

  1. Fügen Sie im Code-Editor die folgende Codezeile hinzu:

    Console.WriteLine(0.25F);
    

    Fügen Sie zum Erstellen eines float-Literals hinter der Zahl den Buchstaben F hinzu. In diesem Kontext wird F als Literalsuffix bezeichnet. Anhand des Literalsuffix wird der Compiler darüber informiert, dass Sie mit einem Wert vom Typ float arbeiten möchten. Das Literalsuffix für den Datentyp float können Sie entweder in Klein- (f) oder in Großbuchstaben (F) angeben.

  2. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. An der Konsole sollte das folgende Ergebnis ausgegeben werden:

    0.25
    

    Beachten Sie, dass der Datentyp float am wenigsten genau ist. Daher empfiehlt es sich, diesen Datentyp für feste Bruchwerte zu verwenden, um unerwartete Berechnungsfehler zu vermeiden.

  3. Fügen Sie im Code-Editor die folgende Codezeile hinzu:

    Console.WriteLine(2.625);
    

    Um ein double-Literal zu erstellen, geben Sie einfach eine Dezimalzahl ein. Der Compiler verwendet standardmäßig ein double-Literal, wenn eine Dezimalzahl ohne Literalsuffix eingegeben wird.

  4. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. Im Ausgabefenster sollte das folgende Ergebnis angezeigt werden:

    2.625
    
  5. Fügen Sie im Code-Editor die folgende Codezeile hinzu:

    Console.WriteLine(12.39816m);
    

    Fügen Sie hierzu hinter der Dezimalzahl den Buchstaben m hinzu. In diesem Kontext wird m als Literalsuffix bezeichnet. Anhand des Literalsuffix wird der Compiler darüber informiert, dass Sie mit einem Wert vom Typ decimal arbeiten möchten. Das Literalsuffix für den Datentyp decimal können Sie entweder in Klein- (m) oder in Großbuchstaben (M) angeben.

  6. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. An der Konsole sollte das folgende Ergebnis ausgegeben werden:

    12.39816
    

Verwenden boolescher Literale

Wenn Sie einen der beiden Werte true oder false ausgeben möchten, können Sie ein boolesches Literal verwenden.

Der Begriff bool ist eine Abkürzung für boolesch. Die offizielle Bezeichnung in C# lautet „bool“, Entwickler*innen verwenden aber häufig auch den Begriff „boolesch“ (oder „Boolean“).

  1. Fügen Sie im Code-Editor die folgenden Codezeilen hinzu:

    Console.WriteLine(true);
    Console.WriteLine(false);
    
  2. Wählen Sie die grüne Schaltfläche „Ausführen“ aus, um Ihren Code auszuführen. An der Konsole sollte das folgende Ergebnis ausgegeben werden:

    True
    False
    

Die bool-Literale stehen für das Wertepaar „wahr“ (TRUE) und „falsch“ (FALSE). Im Abschnitt zum Hinzufügen von Entscheidungslogik zu einer Anwendung werden bool-Werte ausführlicher behandelt. In diesem Zusammenhang wird ein Ausdruck dahin gehend ausgewertet, ob er TRUE oder FALSE ist.

Gründe für die hervorgehobene Bedeutung von Datentypen

Datentypen spielen in C# eine wichtige Rolle. Verglichen mit anderen Programmiersprachen wie JavaScript ist die besondere Rolle von Datentypen eines der Hauptmerkmale von C#. Mit dem Erzwingen von Datentypen wollten die Entwickler von C# häufig auftretende Softwarefehler vermeiden. Im weiteren Umgang mit C# werden Sie sich nach und nach mit diesem Konzept vertraut machen.

Datentypen definieren Funktionen

Weiter oben wurde bereits erwähnt, dass string und char zum Zweck der Darstellung verwendet werden, nicht für Berechnungen. Für eine Rechenoperation mit numerischen Werten verwenden Sie die Datentypen int oder decimal. Dienen die Daten nur Darstellungszwecken oder zur Änderung von Text, verwenden Sie die Datentypen string oder char.

Angenommen Sie haben von Ihren Benutzer*innen Daten wie die Telefonnummer oder Postleitzahl gesammelt. Diese Daten bestehen in den meisten Ländern/Regionen aus numerischen Zeichen. Da mit Telefonnummern und Postleitzahlen jedoch kaum Rechenoperationen durchgeführt werden müssen, sollten Sie in diesem Fall den Datentyp string verwenden.

Dasselbe gilt auch für bool. Wenn Sie in Ihrer Anwendung mit den Begriffen "true" und "false" arbeiten müssen, verwenden Sie den Datentyp string. Soll es sich bei einer Auswertung jedoch um das Konzept von true oder false im Sinne von „wahr/falsch“ handeln, verwenden Sie stattdessen den Datentyp bool.

Vorerst ist nur wichtig zu wissen, dass diese Werte und die entsprechenden Zeichenfolgenliterale sehr ähnlich aussehen können. Man könnte sogar annehmen, dass die folgenden Anweisungen gleiche wären:

Console.WriteLine("123");
Console.WriteLine(123);

Console.WriteLine("true");
Console.WriteLine(true);

Allerdings ist nur die angezeigte Ausgabe scheinbar ähnlich. Die zugrunde liegenden Datentypen int oder bool unterscheiden sich vom entsprechenden Datentyp string deutlich in ihren Möglichkeiten.

Zusammenfassung

Von den zahlreichen möglichen Datentypen werden hier vorerst nur die folgenden behandelt:

  • string für Wörter, Ausdrücke oder beliebige alphanumerische Daten zu Darstellungszwecken, nicht für Berechnungen
  • char für ein einzelnes alphanumerisches Zeichen
  • int für eine ganze Zahl
  • decimal für eine Zahl mit einem Bruch
  • bool für einen true/false-Wert