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

Это даст следующий результат:

маленький ребенок