Ruby - Loops

Loops em Ruby são usados ​​para executar o mesmo bloco de código um determinado número de vezes. Este capítulo detalha todas as instruções de loop suportadas por Ruby.

Ruby while Declaração

Sintaxe

while conditional [do]
   code
end

Executa o código enquanto a condição for verdadeira. Um tempo de ciclo condicional é separado do código pela palavra reservada fazer, uma nova linha, barra invertida \, ou um ponto e vírgula;.

Exemplo

#!/usr/bin/ruby

$i = 0
$num = 5

while $i < $num  do
   puts("Inside the loop i = #$i" )
   $i +=1
end

Isso produzirá o seguinte resultado -

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Ruby enquanto modificador

Sintaxe

code while condition

OR

begin 
  code 
end while conditional

Executa o código enquanto a condição for verdadeira.

Se um modificador while segue uma instrução begin sem cláusulas de salvamento ou de garantia, o código é executado uma vez antes de o condicional ser avaliado.

Exemplo

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1
end while $i < $num

Isso produzirá o seguinte resultado -

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Ruby até declaração

until conditional [do]
   code
end

Executa código enquanto condicional é falsa. A condicional de uma instrução até é separada do código pela palavra reservada do , uma nova linha ou um ponto e vírgula.

Exemplo

#!/usr/bin/ruby

$i = 0
$num = 5

until $i > $num  do
   puts("Inside the loop i = #$i" )
   $i +=1;
end

Isso produzirá o seguinte resultado -

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

Ruby até modificador

Sintaxe

code until conditional

OR

begin
   code
end until conditional

Executa código enquanto condicional é falsa.

Se um modificador until segue uma instrução begin sem cláusulas de salvamento ou de garantia, o código é executado uma vez antes de o condicional ser avaliado.

Exemplo

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1;
end until $i > $num

Isso produzirá o seguinte resultado -

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

Ruby para declaração

Sintaxe

for variable [, variable ...] in expression [do]
   code
end

Executa o código uma vez para cada elemento da expressão .

Exemplo

#!/usr/bin/ruby

for i in 0..5
   puts "Value of local variable is #{i}"
end

Aqui, definimos o intervalo 0..5. A instrução para i em 0..5 permitirá que i assuma valores no intervalo de 0 a 5 (incluindo 5). Isso produzirá o seguinte resultado -

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Um loop for ... in é quase exatamente equivalente ao seguinte -

(expression).each do |variable[, variable...]| code end

exceto que um de loop não criar um novo escopo para variáveis locais. Uma para o circuito de expressão é separado do código pela palavra reservada fazer, uma nova linha ou um ponto e vírgula.

Exemplo

#!/usr/bin/ruby

(0..5).each do |i|
   puts "Value of local variable is #{i}"
end

Isso produzirá o seguinte resultado -

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Declaração de quebra de Ruby

Sintaxe

break

Termina o loop mais interno. Encerra um método com um bloco associado se chamado dentro do bloco (com o método retornando nil).

Exemplo

#!/usr/bin/ruby

for i in 0..5
   if i > 2 then
      break
   end
   puts "Value of local variable is #{i}"
end

Isso produzirá o seguinte resultado -

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2

Próxima declaração Ruby

Sintaxe

next

Pula para a próxima iteração do loop mais interno. Termina a execução de um bloco se chamada dentro de um bloco (com rendimento ou chamada retornando nulo).

Exemplo

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      next
   end
   puts "Value of local variable is #{i}"
end

Isso produzirá o seguinte resultado -

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Declaração de refazer Ruby

Sintaxe

redo

Reinicia esta iteração do loop mais interno, sem verificar a condição do loop. Reinicia o rendimento ou chamada se chamado dentro de um bloco.

Exemplo

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      puts "Value of local variable is #{i}"
      redo
   end
end

Isso produzirá o seguinte resultado e entrará em um loop infinito -

Value of local variable is 0
Value of local variable is 0
............................

Instrução Ruby Retry

Sintaxe

retry

Se a nova tentativa aparecer na cláusula de resgate da expressão inicial, reinicie do início do corpo inicial.

begin
   do_something # exception raised
rescue
   # handles error
   retry  # restart from beginning
end

Se a nova tentativa aparecer no iterador, o bloco ou o corpo da expressão for reinicia a chamada da chamada do iterador. Os argumentos para o iterador são reavaliados.

for i in 1..5
   retry if some_condition # restart from i == 1
end

Exemplo

#!/usr/bin/ruby
for i in 0..5
   retry if i > 2
puts "Value of local variable is #{i}"
end

Isso produzirá o seguinte resultado e entrará em um loop infinito -

Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................