Ruby - se ... altrimenti, caso, a meno che

Ruby offre strutture condizionali piuttosto comuni ai linguaggi moderni. Qui, spiegheremo tutte le istruzioni condizionali e i modificatori disponibili in Ruby.

Ruby if ... else Statement

Sintassi

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

se le espressioni vengono utilizzate per l'esecuzione condizionale. I valori false e nil sono false e tutto il resto è vero. Nota che Ruby usa elsif, non else if né elif.

Esegue il codice se il condizionale è vero. Se il condizionale non è vero, viene eseguito il codice specificato nella clausola else.

Il condizionale di un'espressione if è separato dal codice dalla parola riservata then , una nuova riga o un punto e virgola.

Esempio

#!/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

Rubino se modificatore

Sintassi

code if condition

Esegue il codice se il condizionale è vero.

Esempio

#!/usr/bin/ruby

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

Questo produrrà il seguente risultato:

debug

Ruby a meno che Statement

Sintassi

unless conditional [then]
   code
[else
   code ]
end

Esegue il codice se condizionale è falso. Se il condizionale è vero, viene eseguito il codice specificato nella clausola else.

Esempio

#!/usr/bin/ruby

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

Questo produrrà il seguente risultato:

x is less than 2

Ruby a meno che non sia modificatore

Sintassi

code unless conditional

Esegue il codice se condizionale è falso.

Esempio

#!/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

Questo produrrà il seguente risultato:

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

Dichiarazione sul caso Ruby

Sintassi

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

Confronta l' espressione specificata da case e quella specificata da quando si utilizza l'operatore === ed esegue il codice della clausola when che corrisponde.

L' espressione specificata dalla clausola when viene valutata come operando sinistro. Se le clausole no when corrispondono, case esegue il codice della clausola else .

A quando l'espressione di dichiarazione è separata dal codice dalla parola riservata quindi, un ritorno a capo, o un punto e virgola. Quindi -

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

è fondamentalmente simile al seguente:

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

Esempio

#!/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

Questo produrrà il seguente risultato:

little child