Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmCdEI 106 of 350 menu
◀ ▶

Конструкция else if в Go

Пусть переменная num может принимать значения 1, 2 или 3. Для каждого значения можно написать отдельный if без else:

num := 1 // может быть 1, 2 или 3 if num == 1 { fmt.Println("variant 1") // сработает это } if num == 2 { fmt.Println("variant 2") } if num == 3 { fmt.Println("variant 3") }

Конструкция else if позволяет задавать условия в блоке else. Отдельного слова elseif в Go нет. Давайте посмотрим на примере:

num := 1 if num == 1 { fmt.Println("variant 1") // сработает это } else if num == 2 { fmt.Println("variant 2") } else if num == 3 { fmt.Println("variant 3") }

Преимущество в том, что можно поймать ситуацию, когда значение не подходит ни под одно условие:

num := 1 if num == 1 { fmt.Println("variant 1") // сработает это } else if num == 2 { fmt.Println("variant 2") } else if num == 3 { fmt.Println("variant 3") } else { fmt.Println("variant not supported") }

Пусть в mins лежит число минут от 0 до 59. Определим четверть часа:

mins := 10 if mins >= 0 && mins <= 14 { fmt.Println("1 quarter") // сработает это } if mins >= 15 && mins <= 29 { fmt.Println("2 quarter") } if mins >= 30 && mins <= 44 { fmt.Println("3 quarter") } if mins >= 45 && mins <= 59 { fmt.Println("4 quarter") }

Несколько веток проверяют сверху вниз, пока одна не окажется истинной. После первой проверки пишут else if с новым условием, затем снова else if или финальный else. Отдельного слова elif в Go нет.

Как только одна проверка дала «да», остальные ниже не смотрят. Порядок важен: более частый или более строгий случай ставят выше.

Разделим оценку по баллам:

score := 75 if score >= 90 { fmt.Println("A") } else if score >= 70 { fmt.Println("B") } else { fmt.Println("C") }

При другом числе сработает другая строка цепочки:

score := 95 if score >= 90 { fmt.Println("A") } else if score >= 70 { fmt.Println("B") } else { fmt.Println("C") }

Дано число:

n := 0

При 0 выведите "zero", при 1 выведите "one", иначе "many".

Дано число:

age := 15

До 13 выведите "child", до 18 выведите "teen", иначе "adult".

Дана переменная:

letter := 'a'

Сравните letter с 'a', затем с 'b' в цепочке и выведите "first", "second" или "other".

В переменной day лежит какое-то число из интервала от 1 до 31. Определите, в какую декаду месяца попадает это число: в первую, вторую или третью.

Модифицируйте предыдущую задачу так, чтобы, если в переменной day будет не число от 1 до 31, выдавалось сообщение об ошибке.

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить