Java Reference
In-Depth Information
13.7.1 Beispielprogramm 1
Aufgabe:
Der Hamster steht irgendwo in seinem Territorium. Er soll bis zur nächsten Wand laufen und dabei
alle Körner, die er unterwegs findet, einsammeln. Nur wenn er eine gerade Anzahl an Körnern oder
gar keins eingesammelt hat, soll er alle Körner, die er imMaul hat, an der Mauer ablegen. Ansonsten
soll er nichts weiter tun.
Lösung (ohne globale Variablen):
void main() {
boolean geradeAnzahl = true; // 0 Koerner eingesammelt
geradeAnzahl = sammle();
while (vornFrei()) {
vor();
boolean gesammelt = sammle();
/*
* gerade Zahl + gerade Zahl = gerade Zahl
* ungerade Zahl + ungerade Zahl = gerade Zahl
* alle anderen Faelle ergeben eine ungerade Zahl
*/
geradeAnzahl =
(geradeAnzahl && gesammelt) ||
(!geradeAnzahl && !gesammelt);
}
/*
* falls gerade Anzahl an Koernern gefunden:
* alle Koerner ablegen
*/
if (geradeAnzahl) {
while (!maulLeer()) {
gib();
}
}
}
/*
* sammle alle Koerner auf aktuellem Feld auf; falls gerade
* Anzahl an Koernern eingesammelt wurde, liefere true;
* ansonsten liefere false
*/
boolean sammle() {
boolean geradeAnzahl = true;
// 0 Koerner eingesammelt
while (kornDa()) {
nimm();
/*
* auf jede gerade folgt eine ungerade
Search WWH ::




Custom Search