Перейти к основному содержимому

Практика: Условные конструкции и циклы


Онлайн редактор кода для 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 символов

подсказка

Ошибки компилятора — твои лучшие друзья. Читай их внимательно!