## Mais rastros de buggles

Uau! O seu buggle perdeu-se novamente no mesmo tipo de labirinto, mas desta vez, os corredores nem sempre são do mesmo tamanho. Porque não há como saber a comprimento do corredor antes de tomá-lo, um `for` não será mais suficiente. Ao invés disso, terá que mudar o seu loop interno para usar um loop `while`, a usar o método `crossing()` que diz se o seu buggle está atualmente numa intersecção.

A complexidade adicional é que no início de um corredor, obviamente está num cruzamento, mas ainda quer seguir. [!java|scala|c]Para isso, o mais fácil é usar um loop `do / while` em vez de um loop regular `while` para mover até a próxima intersecção.[/!] [!python]Para isso, use uma variável adicional para indicar se já entrou no corredor, como a seguir. Isto assegurará que execute o corpo do loop pelo menos uma vez (quando `firstTime` for true) antes de usarmos o valor retornado por `crossing()` para determinar se devemos continuar ou não.[/!]

[!python]

    primeiraVez = True
    while primeiraVez or not crossing():
      primeiraVez = False
      (corpo do loop)

[/!]

Com esse novo truque, o seu buggle deve sair desse labirinto muito facilmente.