Задача 8-2: Не до конца понимаю, как работает if-elsif-else

[А] Анатолий Шалобасов, 21 июля 2016, 19:51 , 2 подписчика

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

if (points >= 30)
  puts results[0]
elsif (points >= 25)
  puts results[1]
elsif (points >= 19)
  puts results[2]
elsif (points >= 14)
  puts results[3]
elsif (points >= 9)
  puts results[4]
elsif (points >= 4)
  puts results[5]
else
  puts results[6]
end

Если я вас правильно понимаю допустим наш результат 14 и программа проверяет 1-ое условие, затем 2-ое , затем 3-е и доходит до 4-го и принимает его за верный, но почему программа не идет дальше ведь те условия тоже будут для нее верны и по идеи они должны быть тоже выведены на экран? Или просто дойдя до условия сверху вниз, до которого она удовлетворяется программа успокаивается и перестает искать?

Обсуждение (2)


Анатолий Шалобасов

[А]

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


Вадим Венедиктов Учитель

[В]

Оператор if-elsif-else всегда пускает программу по одной (и только по одной) из ветвей:

if условие 1
  сделать, если условие 1 выполнено
elsif условие 2
  сделать, если условие 1 не выполнено, а условие 2 — выполнено
elsif условие 3
  сделать, если условия 1 и 2 не выполнены, а условие 3 — выполнено
else
  сделать, если не выполнено ни условие 1, ни условие 2, ни условие 3
end

После выполнения любой из ветвей мы перейдём под end и продолжим выполнение там (если только это не метод и в какой-либо из ветвей не встретим return, чем, кстати, частенько пользуются программисты).

Почитайте в конспекте ещё.