if..elsif..end / unless..end

O Ruby apresenta a condicional if padrão na expressão e no formulário modificador de expressão. A condição unless é exatamente igual à condição if not em todos os contextos.

Uma expressão if/unless retorna o valor de sua última expressão.

Forma do bloco

Sintaxe

 if condition [then]
   code
 [elsif condition [then]
   code]
 [else

   code]
 end
 unless condition
   code
 [else

   code]
 end

Explicação

A forma básica da expressão de if se parece com o exibido abaixo e deve terminar com end:

 if alguma_expressão_condição

   # Esta seção será executada se alguma_expressão_condição for verdadeira  end

A palavra-chave else pode ser usada para fornecer uma seção que será executada se a expressão de condição interpretar como falso. Somente um else pode aparecer em uma expressão if:

 if alguma_expressão_condição
   #  Esta seção será executada se alguma_expressão_condição for verdadeira  
 else

   #  Esta seção será executada se alguma_expressão_condição for falsa 
 end

A palavra-chave elsif pode ser usada para criar várias condicionais que se excluem mutuamente. Se a condicional inicial if não for verdadeira, então cada condicional elsif será interpretada em ordem decrescente até que uma seja verdadeira. Se nenhuma for verdadeira, a seção else é executada se houver uma:

 if cond_um

   # cond_um é verdadeira
 elsif cond_dois
   # cond_um não é verdadeira e cond_dois é verdadeira
 elsif cond_três
   # cond_one não é verdadeira e cond_dois é não é verdadeira e cond_três não é verdadeira
 else
   # cond_um, cond_dois e cond_três são verdadeiras
 end

Com unless, não é possível definir elsif, mas apenas else.

A expressão if pode ter uma then opcional adicionada, mas está geralmente omitida.

 if alguma_expressão_condição then
   # ...
 elsif alguma_outra_expressão_condição then

   # ...
 end

No entanto, then é necessária se você quiser manter a expressão if em uma única linha.

 if alguma_expressão_condição then faça_algo end