English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby для начинающих

Ruby для продвинутых

Условные операторы Ruby

Ruby предоставляет несколько очень распространенных структур условного выполнения. В этом разделе мы объясним все условия и модификаторы, доступные в Ruby.

Ruby if...else выражение

грамматика

if условие [then]
      code...
[elsif условие [then]
      code...]...
[else
      code...]
end

if выражение используется для условного выполнения. Значение false и nil Если это ложно, то все другие значения истинны. Обратите внимание, что Ruby использует elsif, а не else if и elif.

если условие Если это истина, то выполняется codeЕсли условие Если это не истина, то выполняется предложение else code

Обычно мы опускаем слово then. Если нужно написать полный if-выражение на одной строке, то необходимо использовать then для разделения условия и блока кода. Вот пример:

if a == 4 then a = 7 end

Онлайн пример

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x=1
if x > 2
   puts "x больше 2"
elsif x <= 2 и x != 0
   puts "x равно 1"
else
   puts "Неизвестно значение x"
end

Результат вывода примера выше:

x есть 1

Ruby if модификатор

грамматика

code if condition

если слово if修饰符 означает, что левая часть if выполняется только при выполнении условия справа. То есть если условие Если это истина, то выполняется code

Онлайн пример

#!/usr/bin/ruby
 
$debug=1
print "debug\n" if $debug

Результат вывода примера выше:

debug

Ruby unless выражение

грамматика

unless conditional [then]
   code
[else
   code ]
end

unless и if работают наоборот, то есть если условие Если это ложно, то выполняется codeЕсли условие Если это истина, то выполняется предложение else, указанное в нем. code

Онлайн пример

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x=1
unless x>2
   puts "x меньше 2"
 else
  puts "x больше 2"
end

Результат выполнения примера выше:

x меньше 2

Ruby unless модификатор

грамматика

code unless conditional

если условие Если это ложно, то выполняется code

Онлайн пример

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
$var =  1
print "1 -- эта строка выводится\n" if $var
print "2 -- эта строка не выводится\n" unless $var
 
$var = false
print "3 -- эта строка выводится\n" unless $var

Результат вывода примера выше:

1 -- эта строка выводится
3 -- эта строка выводится

Ruby case выражение

грамматика

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

case сначала проверяет выражение для выполнения сравнения и затем выбирает ветвь в зависимости от результатов соответствия.

он использует ===оператор сравнения when указанный выражениевыполнить, если они идентичны when Часть содержимого.

Обычно мы опускаем слово then. Если нужно написать полное выражение when на одной строке, то необходимо использовать then для разделения условия и блока кода. Например:

when a == 4 then a = 7 end

Следовательно:

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
# -*- coding: UTF-8 -*-
 
$age =  5
case $age
when 0 .. 2
    puts "младенец"
when 3 .. 6
    puts "ребенок"
when 7 .. 12
    puts "child"
when 13 .. 18
    puts "Молодежь"
else
    puts "Другие возрастные группы"
end

Результат выполнения примера выше:

Дети

Когда часть "выражение" в case пропущена, вычисляется первое выражение условия when, которое истинно.

foo = false
bar = true
quu = false
 
case
when foo then puts 'foo is true'
when bar then puts 'bar is true'
when quu then puts 'quu is true'
end
# Показать "bar is true"