Übung: Ausgeben von Literalwerten
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.
Fügen Sie im Code-Editor die folgende Codezeile hinzu:
Console.WriteLine('b');
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 Datentypstring
erstellen.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
.
Fügen Sie im Code-Editor die folgende Codezeile hinzu:
Console.WriteLine(123);
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.
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 BuchstabenF
hinzu. In diesem Kontext wirdF
als Literalsuffix bezeichnet. Anhand des Literalsuffix wird der Compiler darüber informiert, dass Sie mit einem Wert vom Typfloat
arbeiten möchten. Das Literalsuffix für den Datentypfloat
können Sie entweder in Klein- (f
) oder in Großbuchstaben (F
) angeben.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.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 eindouble
-Literal, wenn eine Dezimalzahl ohne Literalsuffix eingegeben wird.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
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 wirdm
als Literalsuffix bezeichnet. Anhand des Literalsuffix wird der Compiler darüber informiert, dass Sie mit einem Wert vom Typdecimal
arbeiten möchten. Das Literalsuffix für den Datentypdecimal
können Sie entweder in Klein- (m
) oder in Großbuchstaben (M
) angeben.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“).
Fügen Sie im Code-Editor die folgenden Codezeilen hinzu:
Console.WriteLine(true); Console.WriteLine(false);
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 Berechnungenchar
für ein einzelnes alphanumerisches Zeichenint
für eine ganze Zahldecimal
für eine Zahl mit einem Bruchbool
für einentrue
/false
-Wert