Ruby - wenn ... sonst, Fall, es sei denn

Ruby bietet bedingte Strukturen, die in modernen Sprachen häufig vorkommen. Hier werden alle in Ruby verfügbaren bedingten Anweisungen und Modifikatoren erläutert.

Ruby if ... else Statement

Syntax

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

wenn Ausdrücke für die bedingte Ausführung verwendet werden. Die Werte false und nil sind false und alles andere ist true. Beachten Sie, dass Ruby elsif verwendet, weder if noch elif.

Führt Code aus, wenn die Bedingung wahr ist. Wenn die Bedingung nicht wahr ist, wird der in der else-Klausel angegebene Code ausgeführt.

Am wenn Ausdruck bedingter von Code durch das reservierte Wort getrennt dann , eine neue Zeile oder ein Semikolon.

Beispiel

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

Syntax

code if condition

Führt Code aus, wenn die Bedingung wahr ist.

Beispiel

#!/usr/bin/ruby

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

Dies führt zu folgendem Ergebnis:

debug

Ruby außer Statement

Syntax

unless conditional [then]
   code
[else
   code ]
end

Führt Code aus, wenn die Bedingung falsch ist. Wenn die Bedingung wahr ist, wird der in der else-Klausel angegebene Code ausgeführt.

Beispiel

#!/usr/bin/ruby

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

Dies führt zu folgendem Ergebnis:

x is less than 2

Ruby außer Modifikator

Syntax

code unless conditional

Führt Code aus, wenn die Bedingung falsch ist.

Beispiel

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

Dies führt zu folgendem Ergebnis:

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

Ruby case Statement

Syntax

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

Vergleicht den durch case angegebenen Ausdruck mit dem mit dem Operator === angegebenen und führt den Code der übereinstimmenden when-Klausel aus.

Der durch die when-Klausel angegebene Ausdruck wird als linker Operand ausgewertet. Wenn nein, wenn Klauseln übereinstimmen, führt case den Code der else- Klausel aus.

Der Ausdruck einer when- Anweisung wird dann durch das reservierte Wort, eine neue Zeile oder ein Semikolon vom Code getrennt. Also -

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

ist im Grunde ähnlich wie folgt -

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

Beispiel

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

Dies führt zu folgendem Ergebnis:

little child