--- section: Wiederholung mit fester Anzahl title: Variablen --- :::{.terminal} Unser Rover hat nicht unbegrenzt Stauraum und er darf auch nicht zu schwer werden, sonst schafft er es nicht wieder zurück zur Basis. Der Rover muss sich merken können wie viele Steine er bereits aufgehoben hat. [_]{.blink} ::: Zum Speichern von Werten kann man Variablen verwenden. Eine Variable kann man sich wie eine [**Kiste**]{.gap} vorstellen, in der Werte abgelegt werden können. Jede Kiste hat einen eindeutigen [**Datentyp**]{.gap}. Das heißt, zum Speichern von Zahlen muss man andere Kisten (bzw. einen anderen Datentyp) verwenden als zum Speichern von Texten. :::{.tipp} Das Erzeugen einer Variable geschieht in zwei Schritten: ##### 1. [Deklaration]{.gap} Als erstes muss man den **Datentyp** und den **Namen** der Variable festlegen. ::: {.columns} :::: {.column width=50%} **Kistenmodell** :::: :::: {.column width=50%} **Java** :::: ::: ::: {.columns style="align-items: center;"} :::: {.column width=50%} ![](img/kiste-dekl.png){.center style="max-width:min(100%, 15rem);"} :::: :::: {.column width=50%} ```java int zaehler; ``` :::: ::: :::{.tipp} **Wichtig:** Der Datentyp wird nur einmal bei der "*Erstellung*" der Variable genannt, danach nie wieder! ::: ##### 2. [Initialisierung]{.gap} Nun muss man einen Anfangswert festlegen, den sogenannten **Initialwert**. ::: {.columns} :::: {.column width=50%} **Kistenmodell** :::: :::: {.column width=50%} **Java** :::: ::: ::: {.columns style="align-items: center;"} :::: {.column width=50%} ![](img/kiste-init.png){.center style="max-width:min(100%, 15rem);"} :::: :::: {.column width=50%} ```java zaehler = 0; ``` :::: ::: ::: Nachdem eine Variable deklariert und initialisiert wurde, kann man sie verwenden. Z. B. zum Zählen von Gesteinen auf dem Weg zur Marke. Der Rover soll zählen, wie viele Gesteine auf dem Weg bis zur Marke liegen. ![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"} Wenn der Rover auf einem Gestein ist, soll der Zähler um 1 erhöht werden. Zum Erhöhen eines Wertes kann wird der aktuelle Variablenwert genommen und mit 1 addiert und schließlich der Variable wieder zugewiesen. :::{style="text-align: center;"} **Zuweisung**: `zaehler ← zaehler + 1` ::: Erhöhe durch eine Zuweisung den Zähler um 1, wenn er auf einem Gestein steht: ![](img/rover-count1.png){.center style="max-width: min(100%, 900px);"} :::{style="text-align: center;"} `zaehler ← 0 + 1` ::: ![](img/rover-count2.png){.center style="max-width: min(100%, 900px);"} :::{style="text-align: center;"} `zaehler ← 1 + 1` ::: ![](img/rover-count3.png){.center style="max-width: min(100%, 900px);"} :::{style="text-align: center;"} `zaehler ← 2 + 1` ::: ![](img/rover-count4.png){.center style="max-width: min(100%, 900px);"} :::{style="text-align: center;"} `zaehler ← 3 + 1` ::: :::{.tipp} **Hinweis:** In Java gibt es keinen Pfeil, daher verwendet man ein `=`-Zeichen: `zaehler = zaheler + 1`{.java} ::: :::{.merke data-class="Merke: Variablen"} Eine Variable **speichert** einen Wert. Eine Variable muss: 1. mit **Datentyp** und **Namen** **deklariert** werden ---------------------------------------- Allgmein Java -------------------- ------------------ ` ;` `int zahl;`{.java} ---------------------------------------- 2. mit einem **Startwert** **initialisiert** werden --------------------------------------- Allgmein Java ------------------- ------------------ ` = ;` `zahl = 5;`{.java} --------------------------------------- ::: :::{.aufgabe data-class="Aufgabe 6.1.1"} Der Rover soll bis Zur Marke fahren und auf dem Weg alle Gesteine zählen. Schreibe dazu die Methode `zaehleGestein()`, die am Ende die Anzahl der Steine auf dem Weg *zurückgibt*. **Hinweis:** Überlege dir, ob es eine verändernde oder zurückgebende Methode ist? ![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"} ::: :::{.erledigt} ::: :::{.no-print} << Zurück zu TODO: %section% :::