Ruby - si ... sinon, cas, sauf si

Ruby propose des structures conditionnelles assez communes aux langages modernes. Ici, nous expliquerons toutes les instructions conditionnelles et les modificateurs disponibles dans Ruby.

Déclaration Ruby if ... else

Syntaxe

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

si des expressions sont utilisées pour une exécution conditionnelle. Les valeurs false et nil sont fausses et tout le reste est vrai. Remarquez que Ruby utilise elsif, pas else if ni elif.

Exécute le code si le conditionnel est vrai. Si le conditionnel n'est pas vrai, le code spécifié dans la clause else est exécuté.

Le conditionnel d'une expression if est séparé du code par le mot réservé then , une nouvelle ligne ou un point-virgule.

Exemple

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

Syntaxe

code if condition

Exécute le code si le conditionnel est vrai.

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

debug

Ruby sauf déclaration

Syntaxe

unless conditional [then]
   code
[else
   code ]
end

Exécute le code si conditionnel est faux. Si la condition est vraie, le code spécifié dans la clause else est exécuté.

Exemple

#!/usr/bin/ruby

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

Cela produira le résultat suivant -

x is less than 2

Rubis sauf modificateur

Syntaxe

code unless conditional

Exécute le code si conditionnel est faux.

Exemple

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

Cela produira le résultat suivant -

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

Déclaration de cas Ruby

Syntaxe

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

Compare l' expression spécifiée par case et celle spécifiée par lors de l'utilisation de l'opérateur === et exécute le code de la clause when qui correspond.

L' expression spécifiée par la clause when est évaluée comme l'opérande de gauche. Si aucune clause when ne correspond, case exécute le code de la clause else .

A quand l'expression de déclaration est séparée du Code par le mot réservé alors, une nouvelle ligne ou un point - virgule. Ainsi -

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

est fondamentalement similaire à ce qui suit -

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

Exemple

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

Cela produira le résultat suivant -

little child