Einführung in C#
Variablendeklaration und Variablentypen, Werte einlesen und ausgeben
Um mit Variablen zu arbeiten, müssen wir diese vorher deklarieren.
Das bedeutet, wir müssen für unsere Variable z.B. a einen Speicherplatz reservieren.
Beispiel:
string a; // wir deklarieren die Variable a und teilen ihr mit, dass sie vom Typ String ist. int zahl1, zahl2, zahl3, ergebnis; // Deklaration mehrerer Variablen vom Typ Integer int wert = 2; // der Variablen wert vom Typ Integer wird der Wert 2 zugewiesen
Was sind eigentlich Variablen?
Variablen speichern Zahlen, Buchstaben oder Zeichenketten und stellen sie dem Programm zur Verfügung.
Beispiel:
Der Variable mit dem Namen Sum wird der Inhalt von Variable a + Variable b zugeordnet. In Sum wird der Wert 12 gespeichert.
Da in diesem Fall die Variablen ganzzahlige Werte enthalten, müssen wir die Variablen richtig deklarieren, also einem Datentyp zuordnen.
In unserem Beispiel wählen wir den Datentyp Integer (Int 32), welcher ganzzahlige Werte zwischen -231 bis 231 -1 speichern kann.
Als Programmcode sieht das so aus:
int Sum, a=10, b=2; // Variablen werden als Integer deklariert. // a wird der Wert 10 und b der Wert 2 zugeordnet. Sum = a + b; // Sum speichert den Inhalt von a + b
Wertzuweisung von Variablen
Wir einer Variablen kein Wert zugewiesen, beschwert sich Visual C# bei der Ausführung mit einer Fehlermeldung.
Beispiele für Wertzuweisungen:
int maxWert = 10000; // Weist der Variablen maxWert die Zahl 10000 zu. double messwert = 2.3; // Weist der Variablen messwert vom Typ double die Zahl 2.3 zu. string b; // Deklariert die Variable b vom Typ String b = "Ich bin eine Zeichenkette und daher ein String"; // Weist der Variable b die Zeichenkette "Ich bin eine Zeichenkette und daher ein String" zu.
In den folgenden Lektionen werden Variablentypen und Zuweisungen anhand verschiedener Programmbeispiele noch ausführlich beschrieben.
Datentypen in Visual C#
Datentyp |
Wertebereich |
Bit |
Laufzeittyp |
bool |
true oder false |
1 |
Boolescher Wert |
byte |
0 ... 255 |
8 |
Byte |
sbyte |
-128 ... 127 |
8 |
SByte |
char |
0 ... 65535 |
16 |
Unicode Zeichen |
short |
-215 -215 -1 |
16 |
Int16 |
ushort |
0 ... 65535 |
16 |
UInt16 |
int |
-231 - 231 -1 |
32 |
Int32 |
uint |
|
32 |
UInt32 |
float |
1,4 x 10- 45 ... 3,4 x 1038 |
32 |
Single |
ulong |
0 ... 264 -1 |
64 |
UInt64 |
long |
-263 - 263 -1 |
64 |
Int64 |
double |
5,0 x 10- 324 ... 1,7 x 10308 |
64 |
Double |
decimal |
±1,0 x 10-28 ... ±7,9 x 1028 |
128 |
Decimal |
Typischerweise werden Variablen dazu verwendet, um z.B. Werte einzulesen, diese zu verarbeiten und auszugeben.
Dies geschieht mit der Klasse Console und deren Methoden z.B. ReadLine oder WriteLine.
Was ist eine Klasse?
Das soll uns an dieser Stelle noch nicht kümmern.
Ausgabe von Werten
Ausgabe mit Console.WriteLine
Wir schreiben ein Programm mit einer einfachen Ausgabe:
Console.WriteLine("Visual C# ist super!"); Console.ReadLine();
Ausgabe:
Visual C# ist super!
Alles, was in der (" ") steht wird also ausgegeben.
Console.ReadLine(); benötigen wir, damit unser Programm an dieser Stelle anhält und auf eine Eingabe wartet. Ansonsten würde das Programm nach der Ausgabe beendet.
Wir schreiben ein kleines Programm, welches eine Zahl mit einer anderen Zahl multipliziert und das Ergebnis ausgibt:
int zahl1 = 3, zahl2 = 4, ergebnis; ergebnis = zahl1 * zahl2; //speichert 3 * 4, also 12 in ergebnis Console.WriteLine("{0} mal {1} = {2}", zahl1, zahl2, ergebnis); Console.ReadLine();
Ausgabe:
3 mal 4 = 12
Diesmal haben wir in (" ") sogenannte Platzhalter {0}, {1} , {2} für die Ausgabe der Werte unserer Variablen verwendet.
Die Variablen stehen nacheinander nach dem " jeweils getrennt von einem Beistrich.
Das Programm geht von links nach rechts vor:
- An der Stelle des Platzhalters {0}, wird der Wert für die Variable zahl1 ausgegeben.
- An der Stelle des Platzhalters {1}, wird der Wert für die Variable zahl2 ausgegeben.
- An der Stelle des Platzhalters {2}, wird der Wert für die Variable ergebnis ausgegeben.
Eine andere Art um Werte von Variablen auszugeben ist zum Beispiel folgende:
Console.WriteLine(zahl1 + " mal " + zahl2 + " = " + ergebnis);
Das Ergebnis 3 mal 4 = 12 ist ident, jedoch werden hier keine Platzhalter sondern die Variablen selbst für die Ausgabe genutzt.
Der Formatausdruck {}
ermöglicht auch die Formatierung der Ausgabe. {x,y}
- x ... nullbasierter Zähler
- y ... gibt die Breite der Ausgabe an (Unbesetzte Plätze werden durch Leerzeichen aufgefüllt)
int zahl1 = 3, zahl2 = 4, ergebnis; ergebnis = zahl1 * zahl2; //speichert 3 * 4, also 12 in ergebnis Console.WriteLine("{0} mal {1} = {2}", zahl1, zahl2, ergebnis); Console.ReadLine();
Ausgabe:
3 mal 4 = 12
Exponentialformat
int zahl1 = 3, zahl2 = 4, ergebnis; ergebnis = zahl1 * zahl2; //speichert 3 * 4, also 12 in ergebnis Console.WriteLine("{0} mal {1} = {2:E}", zahl1, zahl2, ergebnis); Console.ReadLine();
Ausgabe:
3 mal 4 = 1,200000E+001
Escape-Zeichen
Durch das Einfügen von Escape-Zeichen kann die Ausgabe noch weiter formatiert werden.
Beispiel:
Console.WriteLine("Visual C#\nist\nsuper!"); Console.ReadLine();
Durch Einfügen von \n erreicht man einen Zeilenvorschub.
Ausgabe:
Visual C#
ist
super!
weitere Escape-Zeichen in C#
Escape-Zeichen |
Beschreibung |
\' |
Fügt ein Hochkomma in die Zeichenfolge ein |
\'' |
Fügt Anführungsstriche ein |
\\ |
Fügt einen Backslash ein |
\a |
Löst einen Alarmton aus |
\b |
Löscht ein vorhergehendes Zeichen |
\f |
Löst den Formularvorschub eines Druckers aus |
\n |
Löst einen Zeilenvorschub aus |
\r |
Wagenrücklauf |
\t |
Tabulatorsprung |
\u |
Fügt ein Unicode-Zeichen ein |
\v |
Vertikaler Tabulator |
Einlesen von Werten
Um einen Wert einzulesen verwenden wir die Methode ReadLine.
Console.ReadLine(); // liest immer einen String (Zeichenkette) ein!
Möchte man zum Beispiel eine Zahl einlesen und diese in eine Variable speichern, muss diese zuvor in den Typ Int, long, float ect. konvertiert werden.
Wir schreiben ein Programm, welches eine Zahl einliest und diese mit 5 multipliziert (Das Ergebnis soll wie gewohnt ausgegeben werden):
int zahl1, ergebnis; Console.WriteLine("Bitte eine Zahl eingeben!"); zahl1 = Convert.ToInt32(Console.ReadLine()); // Der eingelesene Wert wird in Int32 konvertiert und in zahl1 gespeichert ergebnis = zahl1 * 5; Console.WriteLine("5 mal {0} = {1}", zahl1, ergebnis); Console.ReadLine();
Methode GetType
Mit der Methode GetType haben wir die Möglichkeit, den Typ einer Variablen abzufragen, wenn wir den Wert der Variablen angeben.
Was eine Methode ist und wie eine Methode funktioniert soll uns an dieser Stelle noch nicht kümmern.
Nur so viel, eine Methode ist eine Art "kleines Programm", welche bestimmte Dinge ausführt.
GetType ist also eine Methode, welche den Variablentyp abfragen kann.
Beispiele:
Console.WriteLine(999.GetType());
Ausgabe:
System.Int32
Console.WriteLine('A'.GetType());
Ausgabe:
System.Char
Console.WriteLine("hallo".GetType());
Ausgabe:
System.String
Console.WriteLine(999.1234.GetType());
Ausgabe:
System.Double
Console.WriteLine(1.5.GetType());
Ausgabe:
System.Double