Практика: Условные конструкции и циклы
Онлайн редактор кода для Go
Здесь вы можете попробовать свои силы в программировании на языке Go. Для этого мы предоставляем вам онлайн редактор кода, в котором вы можете написать свой код и запустить его.
❗️ При обновлении страницы код пропадёт, по этому, сохраните свой код куда-нибудь, если он важный.
Задание 1 — Классификатор возраста
Задание 1: Классификатор возраста
⏱️ Примерное время: 10-15 минутОпредели жизненную стадию человека по возрасту.
❗️ Требования
- используй цепочку
if else if else - категории (в таком порядке приоритета):
- < 0 → "Возраст не может быть отрицательным!"
- 0–12 → "Детство"
- 13–17 → "Подростковый возраст"
- 18–25 → "Молодость"
- 26–64 → "Зрелость"
- ≥65 → "Пожилой возраст"
- выведи категорию через
fmt.Println
Пример для 19 лет: Молодость
Задание 2 — Оценка по баллам (switch без выражения)
Задание 2: Оценка по баллам
⏱️ Примерное время: 10-15 минутОпредели школьную оценку по набранным баллам.
❗️ Требования
- используй
switch { case ... }без выражения - шкала:
- >100 или <0 → "Недопустимое значение"
- ≥90 → "Отлично (5)"
- ≥75 → "Хорошо (4)"
- ≥60 → "Удовлетворительно (3)"
- <60 → "Неудовлетворительно (2)"
- выведи оценку и баллы
Пример: Отлично (5) — 92 балла
Задание 3 — День недели + настроение (switch с выражением)
Задание 3: День недели и настроение
⏱️ Примерное время: 10-12 минутПо номеру дня недели выведи название и короткое настроение.
Требования:
- используй
switch day { case 1: ... default: ... } - 1 → "Понедельник — тяжёлый старт недели"
- 2 → "Вторник — разгоняемся"
- 3 → "Среда — середина недели"
- 4 → "Четверг — уже почти выходные"
- 5 → "Пятница — свобода близко! 😎"
- 6,7 → "Выходной — урааа! 🎉"
- иначе → "Такого дня не бывает"
Пример: Пятница — свобода близко! 😎
Задание 4 — Проверка числа (if + else if + инициализация)
Задание 4: Магия числа
⏱️ Примерное время: 15-20 минутПроверь число на несколько свойств с помощью if с инициализацией.
Требования:
- используй
if n := число; n < 0 { ... } else if n == 0 { ... } else if ... - приоритеты (выводится только одно):
- < 0 → "Отрицательное число"
- == 0 → "Ноль — начало всего"
- == 1 → "Единица — мать всех чисел"
- делится на 7 → "Число недели"
- делится на 5 → "Кратно пятёрке"
- чётное → "Чётное"
- иначе → "Просто нечётное число"
Пример для 14: Чётное
Задание 5 — Считаем в обе стороны (for классический)
Задание 5: Считаем в обе стороны
⏱️ Примерное время: 10-15 минутВыведи числа от A до B (может быть и в обратную сторону).
Требования:
- если A ≤ B → обычный
for i := a; i <= b; i++ - если A > B → обратный
for i := a; i >= b; i-- - выводи каждое число в новой строке
Пример для 10→1:
10
9
...
1
Задание 6 — Сумма чётных до N (for + if + continue)
Задание 6: Сумма только чётных
⏱️ Примерное время: 15-20 минутПосчитай сумму всех чётных чисел от 1 до N.
Требования:
- используй
for i := 1; i <= n; i++ - пропускай нечётные с помощью
if i%2 != 0 { continue } - выведи сумму
Пример для 10: Сумма чётных до 10 = 30 (2+4+6+8+10)
Задание 7 — Символы и их позиции (for range по строке)
Задание 7: Символы и их коды
⏱️ Примерное время: 15-20 минутВыведи каждый символ строки, его позицию и unicode-код.
Требования:
- используй
for pos, r := range s - выводи:
Позиция X: символ 'Y' (код U+XXXX)
Пример:
Позиция 0: символ 'G' (код U+0047)
Позиция 18: символ '🐹' (код U+1F429)
Задание 8 — Простая игра «Угадай число» (бесконечный for + break)
Задание 8: Угадай число (симуляция)
⏱️ Примерное время: 20-25 минутСимулируй угадывание числа от 1 до 100.
Требования:
- используй бесконечный
for { } - симулируй ввод: перебирай от 1 до 100
- если текущее < загаданного → "Слишком мало"
- если > → "Слишком много"
- если равно → "Угадал за X попыток!" +
break - считай попытки
Пример:
Слишком мало
Слишком много
...
Угадал число 42 за 9 попыток!
Задание 9 — FizzBuzz с twist (for + if-else)
Задание 9: FizzBuzz с изюминкой
⏱️ Примерное время: 15-25 минутКлассический FizzBuzz, но с дополнительным правилом.
Требования:
for i := 1; i <= n; i++- если делится на 3 → "Fizz"
- на 5 → "Buzz"
- на 7 → "Bang"
- на 3 и 5 → "FizzBuzz"
- на 3 и 7 → "FizzBang"
- на 5 и 7 → "BuzzBang"
- на 3,5,7 → "FizzBuzzBang"
- иначе → само число
- выводи через пробел или в столбик
Пример части вывода:
1 2 Fizz 4 Buzz Fizz Bang 8 9 FizzBuzz ...
Задание 10 — Итоговое: Анализатор пароля (if + switch + for range)
Задание 10: Анализатор надёжности пароля (итоговое)
⏱️ Примерное время: 25-35 минутОцени надёжность пароля по нескольким критериям.
Требования:
- длина < 8 → "Слишком короткий"
- длина ≥ 16 → "Отличная длина"
- есть хотя бы одна цифра? (for range + if unicode.IsDigit(r))
- есть заглавная буква? (unicode.IsUpper)
- есть спецсимвол? (не буква и не цифра)
- switch по количеству баллов (0–5):
- 0–1 → "Очень слабый"
- 2 → "Слабый"
- 3 → "Средний"
- 4 → "Хороший"
- 5 → "Отличный"
- выведи оценку и все найденные проблемы/плюсы
Пример:
Пароль "Go2026!": Хороший (4/5)
Плюсы: есть заглавная, есть цифра, есть спецсимвол
Минусы: длина всего 7 символов
Ошибки компилятора — твои лучшие друзья. Читай их внимательно!