🧮 Variablen & Datentypen
Wert einer Variable zuweisen
Ohne Variablen kommt kein Programm aus. Variablen dienen als Datenspeicher und werden während der Ausführung des Programms im Arbeitsspeicher (RAM) abgelegt. Hier ein Beispiel:
int number = 18;
Ganz zu Beginn steht der Datentyp int (integer / Ganzzahl). Dann folgt der Variablenname number. Diese Variable speicher den Wert 10.
Ein zweites Beispiel:
string modulName = "Applikationen entwerfen und implementieren";
Hier speichert die String-Variable modul_name die Zeichenkette Applikationen entwerfen und implementieren.
Ich kann auch Werte an mehrere Variablen desselben Datentyps auf einmal vergeben.
int a, b, c = 5, 3, 2;
Console.WriteLine(a) // prints 5
Console.WriteLine(b) // prints 3
Console.WriteLine(c) // prints 2
Variablennamen
Beachte, dass Variablen mit einem Kleinbuchstaben beginnen, zusammengesetzte Begriffe im Lower-Camel-Case (z.B. firstName) verbunden werden und keine Sonderzeichen enthalten dürfen.
| ✅ Erlaubt | ⛔️ Nicht erlaubt |
|---|---|
| number | Number |
| firstName | first-name |
| speedInPercent | speedin% |
Datentypen
In C# musst du jeder Variable einen festen Datentyp zuweisen. Der Compiler prüft zur Übersetzungszeit (Compile-Time), ob der Wert mit dem Datentyp übereinstimmt.
Folgende Datentypen solltest du kennen:
| Typ 🇩🇪 | Typ 🇬🇧 | C# Datentyp | Speichergröße | Wertebereich / Zahlenraum | Beispiele |
|---|---|---|---|---|---|
| Zeichenkette | String | string |
abhängig vom Inhalt | bis zu 2 GB (max. Länge ~2 Mrd. Zeichen) | "Hallo", "abc123", "Mein Name" |
| Zeichen | Character | char |
2 Byte (16 Bit) | Ein einzelnes Unicode-Zeichen | 'A', '9', '?' |
| Ganzzahlen (kurz) | Short Integer | short |
2 Byte (16 Bit) | -32,768 bis 32,767 | -100, 0, 250 |
| Ganzzahlen | Integer | int |
4 Byte (32 Bit) | -2,147,483,648 bis 2,147,483,647 | -5, 0, 1000 |
| Ganzzahlen (lang) | Long Integer | long |
8 Byte (64 Bit) | -9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807 | 1234567890, -5000000000 |
| Fliesskommazahl | Float | float |
4 Byte (32 Bit) | ca. ±1.5 × 10⁻⁴⁵ bis ±3.4 × 10³⁸, 7 Stellen Genauigkeit | 3.14f, -0.01f |
| Fliesskommazahl | Double | double |
8 Byte (64 Bit) | ca. ±5.0 × 10⁻³²⁴ bis ±1.7 × 10³⁰⁸, 15–16 Stellen Genauigkeit | -1.25, 7.6543 |
| Dezimalzahl | Decimal | decimal |
16 Byte (128 Bit) | ±1.0 × 10⁻²⁸ bis ±7.9 × 10²⁸, 28–29 Stellen Genauigkeit | 3.141592653589793238m |
| Wahrheitswerte | Boolean | bool |
1 Byte | true oder false |
true, false |
Um den Datentyp einer Variable herauszufinden, kannst du die Funktion .GetType() verwenden.
string name = "Naruto";
Console.WriteLine(name.GetType()); // System.String
int age = 16;
Console.WriteLine(age.GetType()); // System.Int32
bool hero = true;
Console.WriteLine(hero.GetType()); // System.Boolean
Konvertieren - Benutzereingaben mit Console.ReadLine()
Es ist wichtig zu wissen, dass der Console.ReadLine()-Befehl immer einen Zeichenkette (String) einliest. Selbst wenn die Eingabe eine Ganzzahl (Integer), z.B. 16, ist.
Console.Write("Wie alt bist du? [in Jahren]: ");
string age = Console.ReadLine();
Console.WriteLine("Dein Alter: " + age);
Console.WriteLine("Datentyp von age: " + age.GetType());
Damit wir mit der Variable age rechnen können, müssen wir sie zuerst in einen Zahlentyp wie Integer oder Float konvertieren (umwandeln). Das machen wir mithilfe der int.Parse()- oder Convert.ToInt32()-Funtkion.
int age = int.Pars(age);
// oder
int age = Convert.ToInt32(age);
Hier wird der der Datentyp der Benutzereingabe von String zu Integer konvertiert.
String-Operationen
Es gibt verschiedene Möglichkeiten Strings umzuformen, zu verkürzen und oder sie zusammenzusetzen.
Index einer Zeichenkette
Strings bestehen aus Zeichen, die ab Index 0 nummeriert sind.
string text = "HACKER";
Console.WriteLine(text[0]); // H
Console.WriteLine(text[5]); // R
Substrings
Um einzelne Zeichen oder Teile eines Strings zu erhalten, verwendet man die Methode Substring(startIndex, length):
string text = "HACKER";
// Einzelnes Zeichen
char ch = text[3]; // K
Console.WriteLine(ch);
// Substring: "ACK"
string sub = text.Substring(1, 3); // startIndex=1, Länge=3
Console.WriteLine(sub);
Zeilenumbruch
In Strings erzeugst du einen Zeilenumbruch mit \n oder Environment.NewLine:
string text = "Erste Zeile.\nZweite Zeile.";
Console.WriteLine(text);
// Oder plattformunabhängig
string text2 = "Erste Zeile." + Environment.NewLine + "Zweite Zeile.";
Console.WriteLine(text2);
Anführungszeichen innerhalb eines Strings
Willst du Anführungszeichen im String, benutzt du \":
string text = "Der \"FCL\" ist mein Lieblingsclub.";
Console.WriteLine(text);
Länge eines Strings
string text = "Gorilla";
Console.WriteLine(text.Length); // 7
Strings zusammensetzen
Console.WriteLine("Hello" + " World" + "!"); // Hello World!
string text1 = "Hello";
string text2 = "World!";
Console.WriteLine(text1 + " " + text2); // Hello World!
Strings einbetten
In C# nutzt man Interpolated Strings mit $:
string name = "Kim";
string language = "C#";
Console.WriteLine($"My name is {name} and I am learning {language}.");
// My name is Kim and I am learning C#.
Gross- und Kleinschreibung
string name = "Ringo";
Console.WriteLine(name.ToUpper()); // RINGO
Console.WriteLine(name.ToLower()); // ringo
Weitere nützliche String-Funktionen in C
- StartsWith("H") / EndsWith("r") – Prüft Anfang/Ende
- Contains("ACK") – Prüft, ob Substring enthalten ist
- Replace("A", "X") – Zeichen oder Substring ersetzen
- Trim() – Leerzeichen am Anfang/Ende entfernen
- Split(' ') – String aufteilen in Array
Offizielle Dokumentation: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/strings/
Coding-Aufgaben "Variablen"
Lösen in Block 1 die Aufgaben 1, 2 und 3.