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

Вложенные if в Go

Конструкции if else можно вкладывать друг в друга произвольным образом. Смотрите пример:

num := 3 if num >= 0 { if num <= 5 { fmt.Println("less than or equal to 5") // сработает это } else { fmt.Println("more than 5") } } else { fmt.Println("less than zero") }

Внутри ветки можно поставить еще одно условие. Внешняя проверка отсеивает один класс случаев, внутренняя уточняет детали только для прошедших первый отбор. Блоки снова оборачивают в фигурные скобки.

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

Сначала проверим вход, затем возраст:

logged := true age := 16 if logged { if age >= 18 { fmt.Println("full") } else { fmt.Println("limited") } } else { fmt.Println("guest") }

При другом внешнем ответе внутренняя проверка не выполняется:

logged := false age := 20 if logged { if age >= 18 { fmt.Println("full") } else { fmt.Println("limited") } } else { fmt.Println("guest") }

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

paid := true sum := 50

При оплате проверьте, больше ли sum 30, и выведите "ship" или "hold", иначе выведите "due".

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

lang := "ru" word := "hi"

При lang равном "ru" сравните длину word с 2 и выведите "pair" или "other".

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

a := 2 b := 1

При a больше 0 проверьте b и выведите "both" или "one".

Пусть в переменной age хранится число. Если это число меньше 10 или больше 99, то выведите сообщение об этом. Если же число попадает в указанный диапазон, то найдите сумму цифр этого числа. Если полученная сумма меньше или равна 9, то выведите сообщение о том, что сумма цифр однозначна, в противном случае выведите сообщение о том, что сумма цифр двузначна.

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