Kapitel: Konsole

Variablen

Im letzten Schritt (Zeige mir Text) hast du gelernt, wie du Text ausgibst. Jetzt lernst du, wie du Werte in deinem Programm merken kannst - mit Variablen.

Was ist eine Variable?

Eine Variable ist wie eine beschriftete Kiste im Speicher deines Computers. Du gibst ihr einen Namen und packst einen Wert hinein. Später kannst du über den Namen wieder auf den Wert zugreifen - oder einen neuen Wert hineinpacken.

Eine Variable anlegen

In C# musst du beim Anlegen einer Variable immer festlegen, welchen Datentyp sie hat - also welche Art von Wert in der Kiste liegen darf. Die allgemeine Schreibweise sieht so aus:

typ name = wert;

Zum Beispiel:

int alter = 12;
Console.WriteLine(alter);
Console.WriteLine kann nicht nur Text, sondern auch Zahlen, Wahrheitswerte und andere Datentypen direkt ausgeben - C# wandelt den Wert automatisch in eine passende Textform um.

C#-Datentypen (die wichtigsten)

Es gibt in C# viele Datentypen. Für den Anfang reichen dir diese fünf:

int - Ganze Zahlen

Speichert ganze Zahlen, also ohne Nachkommastellen. Positiv oder negativ.

int anzahl = 5;
int minuten = -30;

double - Kommazahlen

Speichert Zahlen mit Nachkommastellen. Das Komma wird in C# als Punkt geschrieben.

double preis = 4.99;
double temperatur = -3.5;

bool - Wahrheitswerte

Kann nur genau zwei Werte annehmen: true (wahr) oder false (falsch).

bool istFertig = true;
bool hatFehler = false;

char - Ein einzelnes Zeichen

Speichert genau ein Zeichen. Anders als bei Text wird hier mit einfachen Anführungszeichen gearbeitet.

char buchstabe = 'A';
char zeichen = '!';

string - Text

Den kennst du schon aus den letzten Schritten! string speichert Text und wird mit doppelten Anführungszeichen geschrieben.

string name = "Talutah";
Console.WriteLine("Hallo " + name + "!");
Achte auf Gross- und Kleinschreibung! int, double, bool, char und string werden in C# immer klein geschrieben.

Gültigkeitsbereich (Scope)

Eine Variable existiert nicht überall in deinem Programm - sie hat einen sogenannten Scope (Geltungsbereich). Der Scope wird durch geschweifte Klammern { } festgelegt: Überall dort, wo du eine Variable anlegst, ist sie ab diesem Punkt bis zur nächsten schliessenden } gültig.

int x = 10;
Console.WriteLine(x); // funktioniert

{
    int y = 20;
    Console.WriteLine(y); // funktioniert, wir sind noch im Block von y
}

Console.WriteLine(y); // Fehler! y existiert hier nicht mehr
Der letzte Aufruf würde in Visual Studio nicht einmal kompilieren - der Compiler meckert mit 'The name y does not exist in the current context'. Sobald der Block mit } geschlossen wurde, ist die Variable weg.

Die Methode Main, in der du bisher gearbeitet hast, ist selbst auch nur so ein Block. Alles, was du direkt in Main anlegst, ist auch nur innerhalb von Main gültig.

Als Faustregel gilt: Je kürzer der Scope einer Variable, desto übersichtlicher dein Code. Lege Variablen deshalb immer erst dort an, wo du sie wirklich brauchst.

Kurz zusammengefasst: Eine Variable speichert einen Wert unter einem Namen, der Datentyp legt fest, was für ein Wert das sein darf (z.B. int, double, bool, char oder string), und der Scope bestimmt, in welchem Bereich deines Codes - also zwischen welchen geschweiften Klammern - die Variable überhaupt existiert.