GitHub Fredoverflow Karel while System?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Das while-Konstrukt wird benutzt, wenn du eine Aktion n-Mal wiederholen möchtest. Erst wird die Bedingung im Kopf geprüft. Ist sie wahr, geht es in den Schleifenkörper hinein und nach Abarbeitung dessen springt der Programmfluss wieder zum Kopf, um die Bedingung erneut zu prüfen. Erst wenn sie falsch ist, wird der Schleifenkörper übersprungen (und es geht nach der Schleife weiter).

Ein Beispiel:

while (frontIsClear())
{
  moveForward();
}

So lange hier die Sicht nach vorn klar ist, wird der Roboter nach vorn bewegt. Sollte dem nicht mehr der Fall sein, geht der Programmfluss nicht mehr in den Schleifenkörper / Code-Block hinein, sondern macht nach diesem weiter.

Mit dem !-Operator kannst du einen boolschen Wert / Ausdruck negieren. Die frontIsClear-Methode gibt bspw. einen boolschen Wert (wahr/falsch) zurück. Man könnte den Operator im vorigen Beispiel also einsetzen:

while (!frontIsClear())
{
  moveForward();
}

Dies würde bedeuten, dass nur wenn keine klare Sicht nach vorn ist, der Roboter bewegt wird. Das das in diesem Fall nicht viel Sinn macht, ist aber klar.


leootyz 
Beitragsersteller
 03.03.2021, 18:49

Perfekte Antwort bin grad dabei programmieren zu lernen und mir wurde dieses Programm das oben in der Frage steht vorgeschlagen und kommt damit gut zu recht, if und else zum Beispiel brauch ich auch noch stelle gleich eine Frage.

0
leootyz 
Beitragsersteller
 03.03.2021, 18:56

Was gehe alle für Commande bei while? rightIsClear, leftIsClear, frontIsClear gibts noch was?

0
regex9  03.03.2021, 19:00
@leootyz

Die GitHub-Projektseite hat eine kleine Sprachreferenz, wo auch die Sprachelemente aufgeführt und erklärt werden. Die (in Karel) sogenannten primitive conditions werden hier auch aufgelistet.

1