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