Elementor Header #8

6. Условные конструкции

1. Введение

Условные конструкции являются важной частью программирования, позволяя управлять выполнением кода в зависимости от выполнения определённых условий. В Ruby основные условные конструкции включают if, elsif, else, unless, case, и unless. В этом уроке мы рассмотрим их использование и особенности.

2. Условная конструкция if

Конструкция if позволяет выполнять блок кода, если заданное условие истинно.

Пример использования if:

				
					age = 21

if age >= 18
  puts "Вы совершеннолетний."
end

				
			

Здесь код внутри блока if выполняется только если значение переменной age больше или равно 18.

3. Условная конструкция if-else

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

Пример использования if-else:

				
					age = 16

if age >= 18
  puts "Вы совершеннолетний."
else
  puts "Вы несовершеннолетний."
end

				
			

В этом примере, если возраст меньше 18 лет, будет выполнен код в блоке else.

4. Условная конструкция if-elsif-else

Когда необходимо проверить несколько условий, используется конструкция if-elsif-else. Она позволяет проверить несколько условий последовательно.

Пример использования if-elsif-else:

				
					temperature = 25

if temperature > 30
  puts "Очень жарко."
elsif temperature > 20
  puts "Тепло."
else
  puts "Холодно."
end

				
			

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

5. Конструкция unless

Конструкция unless выполняет блок кода, если условие ложно. Это альтернатива конструкции if, которая применяется, когда условие инвертируется.

Пример использования unless:

				
					temperature = 15

unless temperature > 20
  puts "Температура ниже 20 градусов."
end

				
			

В этом примере блок кода выполняется только если температура не превышает 20 градусов.

6. Конструкция case

Конструкция case используется для проверки значения переменной на соответствие множеству возможных значений. Это удобный способ для выполнения разных действий в зависимости от значения переменной.

Пример использования case:

				
					day = "Monday"

case day
when "Monday"
  puts "Сегодня понедельник."
when "Tuesday"
  puts "Сегодня вторник."
else
  puts "Сегодня не понедельник и не вторник."
end

				
			

Здесь программа проверяет значение переменной day и выполняет соответствующий блок кода.

7. Распространённые ошибки

7.1. Ошибка: Неправильное использование elsif

Порядок elsif имеет значение. Убедитесь, что условия расположены правильно и покрывают все возможные случаи.

Пример ошибки:

				
					temperature = 25

if temperature > 20
  puts "Тепло."
elsif temperature > 30
  puts "Очень жарко."  # Этот блок не будет выполнен
else
  puts "Холодно."
end

				
			

Здесь условие temperature > 30 никогда не будет проверено, так как оно расположено после temperature > 20.

7.2. Ошибка: Неправильное использование unless

При использовании unless, убедитесь, что условие верное и логическое.

Пример ошибки:

				
					age = 16

unless age >= 18
  puts "Вы несовершеннолетний."
else
  puts "Вы совершеннолетний."
end

				
			

Здесь else блок будет выполнен только если unless условие ложно, что может быть непреднамеренным.

Заключение

Условные конструкции позволяют управлять выполнением кода в зависимости от выполнения условий. Правильное использование if, unless, case и других конструкций помогает писать чистый и эффективный код. Понимание и применение этих конструкций является основой для решения более сложных задач программирования.

8. Тестовое задание

  1. Напишите метод grade_message, который принимает оценку (число от 0 до 100) и возвращает строку с сообщением о том, как хорошо выполнена работа. Используйте case для проверки оценок:

    • «Отлично» для оценок от 90 до 100
    • «Хорошо» для оценок от 70 до 89
    • «Удовлетворительно» для оценок от 50 до 69
    • «Неудовлетворительно» для оценок ниже 50
  2. Напишите метод check_number, который принимает число и выводит «Число положительное», если число больше нуля, и «Число отрицательное», если число меньше нуля. Используйте unless для проверки числа.

Пример решения:

				
					def grade_message(score)
  case score
  when 90..100
    "Отлично"
  when 70..89
    "Хорошо"
  when 50..69
    "Удовлетворительно"
  else
    "Неудовлетворительно"
  end
end

def check_number(number)
  unless number >= 0
    puts "Число отрицательное."
  else
    puts "Число положительное."
  end
end

# Примеры вызова методов
puts grade_message(85)  # => "Хорошо"
check_number(-5)       # => "Число отрицательное."

				
			

Проверьте свою программу, чтобы убедиться, что она правильно выполняет все операции и обрабатывает возможные ошибки.

logo