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

if x > 0 {
    fmt.Println("положительное")
} else if x < 0 {
    fmt.Println("отрицательное")
} else {
    fmt.Println("ноль")
}

Фигурные скобки обязательны. Скобки вокруг условия не нужны.

Инициализатор в if:

if err := doSomething(); err != nil {
    fmt.Println("ошибка:", err)
}

Переменная err видна только внутри блока if/else. Этот паттерн повсеместно используется при обработке ошибок в Go.

switch day {
case "Monday", "Tuesday", "Wednesday":
    fmt.Println("начало недели")
case "Thursday", "Friday":
    fmt.Println("конец недели")
default:
    fmt.Println("выходной")
}

switch не требует break — каждый case завершается автоматически. Для «провала» в следующий casefallthrough.

switch без выражения — компактная альтернатива цепочке if/else if:

switch {
case x < 0:
    fmt.Println("отрицательное")
case x == 0:
    fmt.Println("ноль")
default:
    fmt.Println("положительное")
}

ЗаданиеСложность
1Упражнение 1easy
2Упражнение 2easy
3Упражнение 3easy
4Упражнение 4medium
5Упражнение 5medium