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

Ruby предоставляет несколько распространённых условных конструкций. Здесь мы объясним все условные операторы и модификаторы, доступные в Ruby.

Ruby if...elseОператор

Синтаксис

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

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

Еслиусловиеистинно, то выполнитькод. Еслиусловиене истинно, то выполнить указанное в ветви elseкод。

Обычно мы опускаем зарезервированное слово 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 and x!=0 puts "x равно 1" else puts "Значение x не может быть определено" end

Попробуйте »

Приведённый выше пример выводит:

x 是 1

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

Синтаксис

код if условие

Фраза с модификатором if означает, что выражение слева от if выполняется только тогда, когда условие справа от if истинно. То есть, еслиусловиеистинно, то выполнитькод。

Пример

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

Попробуйте »

Приведённый выше пример выводит:

debug

Ruby unlessОператор

Синтаксис

unless условие [then] код [else код ] end

Выражение unless работает противоположно выражению if, то есть, еслиусловиеложно, то выполнитекод. Еслиусловиеистинно, то выполните указанный в ветви elseкод。

Пример

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

Попробуйте »

Приведённый выше пример выводит:

x 小于或等于 2

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

Синтаксис

код unless условие

Еслиусловиеложно, то выполнитекод。

Пример

#!/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 выражение [when выражение [, выражение ...] [then] код ]... [else код ] 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 "Baby" when 3 .. 6 puts "Ребёнок" when 7 .. 12 puts "ребёнок" when 13 .. 18 puts "Подросток" else puts "Другой возраст" end

Попробуйте »

Приведённый выше пример выводит:

child

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

foo = false bar = true quu = false case when foo then puts 'foo истинно' when bar then puts 'bar истинно' when quu then puts 'quu истинно' end #Выводит 'bar истинно'
Другие расширения