Ruby - se ... senão, caso, a menos

Ruby oferece estruturas condicionais que são bastante comuns às linguagens modernas. Aqui, explicaremos todas as instruções condicionais e modificadores disponíveis em Ruby.

Declaração Ruby if ... else

Sintaxe

if conditional [then]
   code...
[elsif conditional [then]
   code...]...
[else
   code...]
end

se as expressões são usadas para execução condicional. Os valores false e nil são false e tudo o mais é true. Observe que o Ruby usa elsif, não else if nem elif.

Executa o código se a condicional for verdadeira. Se a condição não for verdadeira, o código especificado na cláusula else é executado.

Uma condicional de expressão if é separada do código pela palavra reservada then , uma nova linha ou um ponto e vírgula.

Exemplo

#!/usr/bin/ruby

x = 1
if x > 2
   puts "x is greater than 2"
elsif x <= 2 and x!=0
   puts "x is 1"
else
   puts "I can't guess the number"
end
x is 1

Ruby se modificador

Sintaxe

code if condition

Executa o código se a condicional for verdadeira.

Exemplo

#!/usr/bin/ruby

$debug = 1
print "debug\n" if $debug

Isso produzirá o seguinte resultado -

debug

Ruby a menos que declaração

Sintaxe

unless conditional [then]
   code
[else
   code ]
end

Executa o código se condicional for falsa. Se a condição for verdadeira, o código especificado na cláusula else é executado.

Exemplo

#!/usr/bin/ruby

x = 1 
unless x>=2
   puts "x is less than 2"
 else
   puts "x is greater than 2"
end

Isso produzirá o seguinte resultado -

x is less than 2

Ruby a menos que modificador

Sintaxe

code unless conditional

Executa o código se condicional for falsa.

Exemplo

#!/usr/bin/ruby

$var =  1
print "1 -- Value is set\n" if $var
print "2 -- Value is set\n" unless $var

$var = false
print "3 -- Value is set\n" unless $var

Isso produzirá o seguinte resultado -

1 -- Value is set
3 -- Value is set

Declaração de caso Ruby

Sintaxe

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
end

Compara a expressão especificada por caso e aquela especificada por ao usar o operador === e executa o código da cláusula when correspondente.

A expressão especificada pela cláusula when é avaliada como o operando esquerdo. Se nenhuma cláusula when coincidir, case executa o código da cláusula else .

A expressão de uma instrução when é separada do código pela palavra reservada then, uma nova linha ou um ponto e vírgula. Assim -

case expr0
when expr1, expr2
   stmt1
when expr3, expr4
   stmt2
else
   stmt3
end

é basicamente semelhante ao seguinte -

_tmp = expr0
if expr1 === _tmp || expr2 === _tmp
   stmt1
elsif expr3 === _tmp || expr4 === _tmp
   stmt2
else
   stmt3
end

Exemplo

#!/usr/bin/ruby

$age =  5
case $age
when 0 .. 2
   puts "baby"
when 3 .. 6
   puts "little child"
when 7 .. 12
   puts "child"
when 13 .. 18
   puts "youth"
else
   puts "adult"
end

Isso produzirá o seguinte resultado -

little child