---
section: Bedingte Wiederholung
title: Bedingte Wiederholung
---
:::{.no-print}
::::{.tipp}
Vergiss nicht das Arbeitsblatt: %section% herunterzuladen.
::::
:::
:::{.terminal}
Um unser gesuchtes Mineral zu finden, wollen wir Gesteinsproben untersuchen.
Der Rover kann Gestein unter sich aufnehmen, damit es später genauer analysiert werden kann.
Es ist deine Aufgabe eine **Methode** zu schreiben, mit der der Rover auf das Gestein vor ihm fährt und es aufsammelt.
Das letzte Team hat die folgenden Vorschläge gemacht.
[_]{.blink}
:::
::: {.columns}
:::: {.column width=33%}

```java
void sucheGestein()
{
fahre();
fahre();
nimmGestein();
}
```
::::
:::: {.column width=33%}

```java
void sucheGestein()
{
fahre(); fahre(); fahre();
fahre(); fahre(); fahre();
fahre(); fahre();
nimmGestein();
}
```
::::
:::: {.column width=33%}

```java
void sucheGestein()
{
wiederhole solange kein Stein vorhanden
fahre();
nimmGestein();
}
```
::::
:::
:::{.merke data-class="Merke: Wiederholung mit Bedingung"}
Mit einer **Wiederholung mit Bedingung** (while-Schleife) können bestimmte [Anweisungen]{color="orange"} mehrmals ausgeführt werden.
Solange die [Bedingung]{color="magenta"} *wahr* ist, wird die Sequenz wiederholt.
Wenn die Bedingung *falsch* ist, wird der Programmcode nach der Wiederholung fortgesetzt.
::: {.columns}
:::: {.column width=33%}
**Programmcode:**
while([Bedingung]{color="magenta"})
::::
:::: {.column width=33%}
**Programmablauf:**

::::
:::: {.column width=33%}
**Struktogramm:**

::::
:::
:::
{.center}
:::{.terminal}
Der letzte Vorschlag unseres Teams sieht schon nicht schlecht aus.
Leider ist der vorgeschlagene Code noch kein korrektes Java Programm.
In Java kann das **kein** in "*kein Gestein*" durch ein Ausrufezeichen `!`{style="color: red;"} ausgedrückt werden.
[_]{.blink}
:::
:::{.aufgabe data-class="Aufgabe 4.1"}
Übertrage die Methode `sucheStein()` in die drei Darstellungsformen.
:::: {.columns}
::::: {.column width=33%}
**Programmcode:**
::::::{.solution}
{
[Anweisungen]{style="color: orange; margin-left: 20px;"}
}
void sucheStein() {
::::::
:::::
::::: {.column width=33%}
**Programmablauf:**
::::::{.solution}

::::::
:::::
::::: {.column width=33%}
**Struktogramm:**
::::::{.solution}

::::::
:::::
::::
:::
:::{.tipp style="margin-top: 1rem;"}
Vergiss nicht einen Screenshot deiner Lösung abzugeben unter Planet: Aufgabe 4.1
{style="margin-top: 5px;"}
:::
:::{.terminal}
Unsere Ausbildungsabteilung hat folgende Trainingsaufgaben als Aufwärmübungen für angehende Pilot*innen empfohlen.
[_]{.blink}
:::
:::{.no-print}
[while([!gesteinVorhanden()]{color="magenta"})]{style="margin-left: 20px;"}
[{]{style="margin-left: 20px;"}
[fahre();]{style="color: orange; margin-left: 40px;"}
[}]{style="margin-left: 20px;"}
[nimmGestein();]{style="margin-left: 20px;"}
}
| **Code A** ```java while(huegelVorhanden("links")) { fahre(); } ``` | **Code B** ```java while(huegelVorhanden("rechts")) { fahre(); } ``` | **Code C** ```java while(!huegelVorhanden("links")) { fahre(); } ``` |
| **Code D** ```java while(!huegelVorhanden("rechts")) { fahre(); } ``` | **Code E** ```java while(huegelVorhanden("rechts")) { fahre(); setzeMarke(); } ``` | **Code F** ```java while(!huegelVorhanden("links")) { fahre(); } setzeMarke(); ``` |