Em vez de testar o resultado de um comando ou entrada do usuário, você pode especificar pra um arquivo a entrada. Em tais casos, ler é muitas vezes o comando de controle. Enquanto as linhas de entrada são alimentadas no loop, a execução dos comandos de loop continua. Assim que todas as linhas de entrada são lidas, o loop sai.