🦊 FoxWiki

Условия с else и elseif

Ранее if просто проверял условие и выполнял код если оно истинно. Но часто нужен не один вариант, а два или больше: если одно — делай это, иначе — то.


else — запасная ветка

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

Редактор Lua
1
2
3
4
5
6
7

Только одна из двух веток выполнится — никогда обе.

Редактор Lua
1
2
3
4
5
6
7
8
9
Редактор Lua
1
2
3
4
5
6
7
8
9

elseif — несколько вариантов

Когда вариантов больше двух — добавляй elseif. Можно добавить сколько угодно:

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11

Компьютер проверяет ветки сверху вниз и выполняет первую подошедшую. Остальные игнорирует, даже если они тоже истинны.

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11

Важно для Lua: elseif пишется слитно, одним словом. else if раздельно — это другая конструкция, которая требует отдельный end и часто приводит к ошибкам.


Порядок веток имеет значение

Ветки проверяются последовательно. Более конкретные условия ставь выше:

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12

Если поменять местами fuel == 0 и fuel < 10, то нулевое топливо попадёт в ветку "критический уровень" и никогда не достигнет своего сообщения об аварийной остановке.


Практические примеры

Обработка HTTP-статусов:

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Категоризация предмета по имени:

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11

🚀 Задания

Задание 1 Напиши программу оценки температуры: ниже 0 — "Мороз", 0–15 — "Холодно", 16–25 — "Комфортно", выше 25 — "Жара". Используй elseif.

Задание 2 Создай переменную day = "Wednesday". Напиши условие: если понедельник или пятница — "Начало/конец недели", если суббота или воскресенье — "Выходной", иначе — "Рабочий день".

Задание 3 Напиши классификатор файлов по расширению. Переменная ext содержит расширение ("png", "mp3", "lua" и т.д.). Раздели на категории: изображения, аудио, видео, код, другое.

Задание 4 Найди ошибку: почему вторая ветка никогда не выполнится?

Редактор Lua
1
2
3
4
5
6

Задание 5 Напиши систему скидок: если сумма покупки > 10000 — скидка 20%, > 5000 — 10%, > 1000 — 5%, иначе — без скидки. Выведи финальную цену после скидки.

НазадЗнакомство с компьютером
ДалееУсловия