Ruby IF....ELSE
Ruby предлагает условные структуры, довольно общие для современных языков. Ниже все условные операторы и модификаторы, доступные в Ruby.
Ruby if ... else Statemrnt:
Синтаксис:
if conditional [then]
cod ...
[elsif conditional [then]
cod ...] ...
[else
cod ...]
end
Обратите внимание, что Ruby использует elsif, а не else if или elif.
Выполняется код, если условие истинно. Если условие не истинно, выполняется код, указанный в предложении else.
Условное выражение if отделяется от кода зарезервированным словом then, новой строкой или точкой с запятой.
Пример:
#!/usr/bin/ruby
x=1
if x > 2
puts "x больше 2"
elsif x <= 2 and x!=0
puts "x равно 1"
else
puts "я не могу угадать число"
end
x равен 1
Ruby if modifier:
Синтаксис:
cod if condition
Выполняет код, если условие истинно.
#!/usr/bin/ruby
$debug=1
print "debug\n" if $debug
Это даст следующий результат:
отлаживать (debug)
Ruby unless Statement:
Синтаксис:
unless conditional [ then ]
cod
[ else
cod ]
end
Выполняет код, если условие ложно. Если условие истинно, выполняется код, указанный в предложении else.
Пример:
#!/usr/bin/ruby
x=1
unless x>2
puts "x меньше 2"
else
puts "x больше 2"
end
Это даст следующий результат:
x меньше 2
Ruby unless modifier:
Синтаксис:
code unless conditional
Выполняет код, если условие ложно.
Пример:
#!/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
Это даст следующий результат:
1 -- Value is set
3 -- Value is set
Ruby case Statement
Синтаксис:
case expression (выражение)
[when expression [ , expression ...] [then]
code] ...
[else
code ]
end
Сравнивает выражение, указанное с помощью case, и выражение, указанное с помощью оператора ===, и выполняет код соответствующего предложения when.
Выражение, указанное в предложении when, оценивается как левый операнд. Если предложения when не совпадают, case выполняет код предложения else.
Выражение оператора when отделяется от кода зарезервированным словом then, новой строкой или точкой с запятой.
Таким образом:
case expr0
when expr1, expr2
stmt1
when expr3, expr4
stmt2
else
stmt3
end
в основном похож на следующее:
_tmp = expr0
if expr1 === _tmp || expr2 === _tmp
stmt1
elsif expr3 === _tmp || expr4 === _tmp
stmt2
else
stmt3
end
Пример:
#!/usr/bin/ruby
$age = 5
case $age
when 0 .. 2
puts "ребенок"
when 3 .. 6
puts "маленький ребенок"
when 7 .. 12
puts "ребенок"
when 13 .. 18
puts " молодежь "
else
puts "adult"
end
Это даст следующий результат:
маленький ребенок