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

Логическое ИЛИ в Go

Логическое ИЛИ требует выполнения хотя бы одного условия. В Go его записывают знаком ||. В следующем примере условие выполнится, если переменная num1 больше 0 или переменная num2 больше 0:

num1 := 10 num2 := -5 if num1 > 0 || num2 > 0 { fmt.Println("Y") // сработает это } else { fmt.Println("N") }

Операция && имеет приоритет над ||. В следующем примере условие сработает, если переменная num от 0 до 5 или от 10 до 20:

num := 3 if num > 0 && num < 5 || num > 10 && num < 20 { fmt.Println("Y") // сработает это } else { fmt.Println("N") }

Часто удобнее показать приоритет круглыми скобками вокруг групп сравнений:

num := 3 if (num > 0 && num < 5) || (num > 10 && num < 20) { fmt.Println("Y") // сработает это } else { fmt.Println("N") }

Ветка выполнится, когда истинна левая часть, правая или обе сразу.

Связку ИЛИ часто ставят, когда подходит несколько разных случаев: один код ошибки или другой, один порог или другой. Ложны должны быть обе части, чтобы вся проверка дала «нет».

Пропустим пользователя при админской роли или при особом флаге:

role := "guest" vip := true if role == "admin" || vip { fmt.Println("inside") } else { fmt.Println("outside") }

Когда обе части ложны, срабатывает вторая ветка:

role := "guest" vip := false if role == "admin" || vip { fmt.Println("inside") } else { fmt.Println("outside") }

Дано число:

day := 6

Если day равно 6 или 7, выведите "rest", иначе "job".

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

a := 0 b := 5

Выведите "hit", если a равно 0 или b больше 3, иначе "miss".

Сравните 1 с 2 и 3 с 3 в одной связке ИЛИ. Выведите "any" или "none".

Не запуская код, определите, что выведется:

num1 := -10 num2 := -10 if num1 >= 0 || num2 >= 0 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num1 := 0 num2 := 0 if num1 >= 0 || num2 >= 0 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num1 := 0 num2 := 5 if num1 >= 0 || num2 >= 0 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num1 := 5 num2 := 5 if num1 >= 0 || num2 >= 0 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num1 := -5 num2 := 15 if num1 >= 0 || num2 >= 0 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num := 1 if num == 0 || num == 1 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num := 2 if num == 0 || num == 1 { fmt.Println("Y") } else { fmt.Println("N") }

Не запуская код, определите, что выведется:

num := 2 if num == 0 || num == 1 || num == 2 { fmt.Println("Y") } else { fmt.Println("N") }

В приведенном ниже коде укажите приоритет операций в явном виде:

num := 3 if num > 5 && num < 10 || num == 20 { fmt.Println("Y") } else { fmt.Println("N") }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить