Логическое И в Go
Логическое И позволяет задать одновременность
условий. В Go его записывают знаком &&.
В следующем примере условие выполнится, если
переменная num больше нуля и одновременно
меньше 10:
num := 3
if num > 0 && num < 10 {
fmt.Println("Y") // сработает это
} else {
fmt.Println("N")
}
Условия могут налагаться не на одну переменную,
а на разные. В следующем примере условие
выполнится, если переменная num1 равна
2 и одновременно переменная num2
равна 3:
num1 := 2
num2 := 3
if num1 == 2 && num2 == 3 {
fmt.Println("Y") // сработает это
} else {
fmt.Println("N")
}
Ветка выполнится только когда и слева, и справа получится ответ «да».
Части могут быть сравнениями чисел или готовыми логическими значениями. Скобки помогают задать порядок, когда проверок больше двух.
Потребуем и возраст, и наличие билета:
age := 20
ticket := true
if age >= 18 && ticket {
fmt.Println("enter")
} else {
fmt.Println("stop")
}
Если одна часть ложна, вся связка дает «нет»:
age := 20
ticket := false
if age >= 18 && ticket {
fmt.Println("enter")
} else {
fmt.Println("stop")
}
Даны переменные:
x := 5
y := 10
Если x меньше 8 и y больше 7,
выведите "ok", иначе "no".
Даны переменные:
paid := true
blocked := false
Выведите "work", если оплата есть и
блокировки нет, иначе "wait".
Сравните 3 с 3 и 2 с 1
в одной связке И в условии. Выведите "all"
или "part".
Проверьте то, что переменная num
больше нуля и меньше 5.
Проверьте то, что переменная num
больше или равна 10 и меньше или равна
20.
Проверьте то, что переменная num1
равна или меньше 1, а переменная
num2 больше или равна 3.