Além dos condicionais, outra construção bem útil é a habilidade de repetir uma ação enquanto uma condição específica não acontece. Um loop 'while' é usado para isto, com a seguinte sintaxe.
[!java|scala|c]while (condição) { ação(); }[/!][!python]while condição: ação()[/!]
O bloco interno é então executado várias e várias vezes, enquanto a condição se mantiver verdadeira. Mais especificamente, o buggle testa o valor da condição. Se for falsa, ele ignora o bloco e continua abaixo. Se for verdadeira, ele executa o bloco. Depois disto, ele testa a condição. Se ela agora for falsa (por exemplo, por que os movimentos do bloco nos deixaram de cara pra parede), ele agora ignora o bloco e continua. Se ele ainda for verdadeiro, ele executa o bloco e reavalia a condição. Ele faz isto enquanto a condição se mantém verdadeira.
Naturalmente, se a ação escolhida não modifica o valor da condição, o buggle vai fazer a ação infinitamente. O botão stop na interface se torna útil nestes casos. Para testar isto, você pode tentar digitar o seguinte código no editor:
[!java|scala]while (true) { esquerda(); }[/!][!c]while (1) { esquerda(); }[/!][!python]while True: esquerda()[/!]
Isto vai fazer o buggle virar à esquerda enquanto
[!c]1[/!][!java|scala]true[/!][!python]True[/!]
permanecer true
(ou seja, infinitamente), ou até que você pare manualmente usando o botão
parar.
Enquanto não estiver de cara para uma parede, faça: avançar()
Quando o seu programa funciona, vá para o próximo exercício.