---
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.
_
:::
::: {.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 `!`{.java} ausgedrückt werden.
_
:::
:::{.aufgabe data-class="Aufgabe 4.1"}
Übertrage die Methode `sucheStein()` in die drei Darstellungsformen.
:::: {.columns}
::::: {.column width=33%}
**Programmcode:**
{
[Anweisungen]{style="color: orange; 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(); ``` |