В самом конце, когда мы выбираем уже какой результат конечный выдать в задаче вы пишите вот так
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-го и принимает его за верный, но почему программа не идет дальше ведь те условия тоже будут для нее верны и по идеи они должны быть тоже выведены на экран? Или просто дойдя до условия сверху вниз, до которого она удовлетворяется программа успокаивается и перестает искать?
Оператор if-elsif-else
всегда пускает программу по одной (и только по одной) из ветвей:
if условие 1
сделать, если условие 1 выполнено
elsif условие 2
сделать, если условие 1 не выполнено, а условие 2 — выполнено
elsif условие 3
сделать, если условия 1 и 2 не выполнены, а условие 3 — выполнено
else
сделать, если не выполнено ни условие 1, ни условие 2, ни условие 3
end
После выполнения любой из ветвей мы перейдём под end и продолжим выполнение там (если только это не метод и в какой-либо из ветвей не встретим return
, чем, кстати, частенько пользуются программисты).
Почитайте в конспекте ещё.