× Темы

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

+3

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

Условные операторы - это специальные операторы, которые выполняют код в зависимости от условия.
Бывают в двух состояниях, если условие выполняется(true), если условие не выполняется(false)
В ruby существует всего два условных оператора if и case, а также присутствует тернарный оператор.

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

Для его создания используется конструкция.
if (условие)
…
end


a = 5
if a == 5
puts "Верно #{a} == 5"
end
#=> Верно 5 == 5

Использование #{} в строке, позволяет вернуть значение переменной в строку.

Иногда вместо if используют unless он имеет абсолютно такой же синтаксис как if, но выполняется если условии не верно.
a = 5
unless a == 5
puts "Верно #{a} == 5"
end
#=>

В результате, код внутри условного выражения не выполнится.

Часто используют ключевое слово else, которое служит для того чтобы выполнить код, если условие не верно.
Конструкция if-else

a = 3
b = 5
if(b < a)
puts "#{b} меньше #{a}"
else 
puts "#{a} меньше #{b}"
end

if возвращает значение, поэтому его можно присвоить
name = if x == 1
	"one"
end

В языке ruby есть краткий способ записи условного оператора if
a,b = b,a if a == 3

Здесь мы переприсваиваем a и b, если a равно 3

if-elsif-end Часто используют дополнительное ключевое слово elsif, которое используется для создания множества условий


a = 3
b = 5
if(b < a)
	puts "#{b} меньше #{a}"
elsif(a == b)
	puts "#{a} равно #{b}"
elsif(b > a)
	puts "#{b} больше #{a}"
end


Важный момент, что если несколько условий верные, будет выполнено только первое условие. В примере последнее условие верное, но оно не будет выполнено.
a = 3
b = 5
с = 5

if(b < a)
	puts "#{b} меньше #{a}"
elsif(a == b)
	puts "#{a} равно #{b}"
elsif(b > a)
	puts "#{b} больше #{a}"
elsif(b == с)
	puts "#{b} равно #{с}"
else puts "Все не верно"
end



Case
Для проверки множества условий используют условный оператор case

case(оператор)
  when (условие)  
    действие1
  when (условие) 
    действие2
  when (условие)
    действие3
  else  
    действие
end


age =  5

case age
  when 0 .. 2
    puts "Ляля"
  when 3 .. 6
    puts "Маленький подросток"
  when 7 .. 12
    puts "Почти подросток"
  when 13 .. 18
    puts "Подросток"
else
    puts "Не правильный ребенок"
end




Можно записывать case без условия. Тогда выполнится первое when которое вернет true. Например
case
  when x==1 puts "x equal one"
  when x==2 puts "x equal two"
end


Тернарный оператор

Используется для краткой записи условия
(условие) ? действие1 : действие2
x = 1
x == 1? "one" : x - 1
все для dleфильмы и сериалы онлайн hdавтоматический обмен webmoney на приват24android игры, приложения, инструкции, обзоры



Оценить статью