Die repeat-until-Schleife ist der while-Schleife sehr ähnlich. Nur prüft sie die Bedingung erst nach dem ersten Durchlauf.
b = 10
repeat
print(b)
b = b - 1
until (b <= 0)
Die Schleife gibt also erst den Wert von b aus, prüft dann, ob die Bedingung erfüllt ist (b ist gleich 0). Ist sie nicht erfüllt, wird sie noch mal ausgeführt. Aber Achtung: sie wird nur beendet, wenn diese Bedingung exakt erfüllt ist. Also wenn b gleich 0 ist. Davor werden die Anweisungen aber mindestens einmal ausgeführt. Weist du der Variable b nun den Wert 0 zu, wird die Schleife nicht beendet und unendlich lang weiter runterzählen. Denn wenn der Wert am Anfang 0 ist, wird er erstmal um eins reduziert und ist dann, wenn sie geprüft wird, bei -1. Dadurch trifft die Bedingung dann nicht mehr zu. Daher wäre es hier sinnvoller die Bedingung b <= 0 zu verwenden. Dann wird sie verlassen wenn sie entweder 0 oder kleiner ist.