Estruturas de controle

Ruby tem as estruturas de controle comuns à maioria das linguagens mais conhecidas. São elas:

if .. [then]              # if tradicional
  ..
[elsif .. [then]
  ..]
[else
  ..]
end

unless .. [then]          # negação do if (a menos que ...)
  ..
[else
  ..]
end

case ..                   # execução por casos (comparação com o operador ===)
[when .. [,..] [,..] [then]
  ..]
[else
  ..]
end

while .. [do]             # while tradicional (faça enquanto ...)
  ..
end

until .. [do]             # negação do while (até que ...)
  ..
end

for i in .. [do]          # iteração por uma lista de objetos
  ..
end

Além disso, if, unless, while e until podem ser usadas como modificadores, da seguinte forma:

puts "oi!" if bem_vindo
expulsa_pessoas until recinto.vazio?

Estas estruturas de controle retornam o valor da última expressão avaliada por elas.

Há também BEGIN e END, que recebem blocos, que serão executados respectivamente antes e depois da execução do restante do programa. Múltiplos blocos podem ser definidos, mas apenas no nível mais externo do arquivo (fora que quaisquer classes ou módulos). Blocos BEGIN são executados na ordem de definição. Blocos END são executados na ordem inversa de definição.

# Obs.: isto não funciona no Irb

puts "aie"
END { puts "finalizando" }
BEGIN { puts "inicializando" }

Controle de laços e iteradores

Em laços e iteradores, break serve para sair do laço/bloco mais interno, next começa imediatamente a próxima iteração, redo reinicia a iteração atual, e retry reinicia a iteração reavaliando a condição (laços) ou refazendo a atribuição de argumentos (iteradores).

topo da página

<< Página Anterior | índice | Próxima Página >>
Apostilas de Ruby e RGSS

nossos tutoriais

navegue

livros recomendados