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