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.
if condition [then] code [elsif condition [then] code] [else code] end
unless condition code [else code] end
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