O comando while executa uma instrução ou um bloco de instruções até que uma expressão especificada seja avaliada como falsa. Como o teste da expressão ocorre antes de cada execução do loop, um loop while executa nenhuma ou mais vezes. Isso difere do loop Do, que executa uma ou mais vezes. Veja este exemplo na figura abaixo:
Ruby não possui a instrução Do em sua coleção de comando de laços, e sim para marcar blocos de instruções, então para que o comando While tenha o efeito do comando Do (em outras linguagens de programação) você pode mudar a condição para o final do bloco de instruções iniciados com a palavra chave Begin.
Sintaxe:
begin
Bloco de comandos
end while (condição)
Deste modo o comando While executa pelo menos uma vez o bloco de instruções independente da condição.
Exemplo:
Através de um laço diferenciamos os números impares e pares os exibindo no console, atente-se para a logica do comando While que executa nenhuma ou mais vezes pois o teste sempre ocorre antes da execução do loop.
Ruby
# Desenvolvimento Aberto # pares.rb # Coleta um numero puts"Digite um numero limite:" n = gets # Converte para inteiro numero = n.to_i #Cria numeros iniciais pares e impares npar = 0 nimpar = 1 # Cria um laço com o numero escolhido while (npar <= numero) puts "numeros pares:" + npar.to_s + " " + "numeros impares:" + nimpar.to_s npar = npar + 2 nimpar = nimpar +2 end