Условный оператор if
Условный оператор if в Go выполняет блок кода,
если указанное логическое условие возвращает
true. В отличие от многих других языков,
в Go условие не заключается в круглые скобки,
но фигурные скобки вокруг тела оператора обязательны.
Оператор if также поддерживает краткую запись
с инициализацией переменной перед проверкой условия.
Синтаксис
if condition {
// код выполняется, если condition == true
}
Базовый синтаксис оператора if состоит из
ключавого слова if, за которым следует
логическое выражение, и блока кода в фигурных скобках.
Условие всегда должно возвращать логическое значение
(bool).
Пример
Проверим, является ли число положительным:
package main
import "fmt"
func main() {
x := 10
if x > 0 {
fmt.Println("x is positive")
}
}
Результат выполнения кода:
"x is positive"
Краткая инициализация в if
В Go оператор if позволяет объявить переменную,
которая будет видна только внутри блока условия и его
веток else. Это удобно, когда нужно выполнить
вычисление и сразу проверить его результат.
Пример
Проверим четность числа с инициализацией переменной
внутри if:
package main
import "fmt"
func main() {
if num := 42; num%2 == 0 {
fmt.Println("num is even")
}
}
Результат выполнения кода:
"num is even"
Пример
Переменная, объявленная в if, недоступна
за пределами оператора:
package main
import "fmt"
func main() {
if val := 100; val > 0 {
fmt.Println(val, "is positive")
}
// fmt.Println(val) // ошибка: val не определена
}
Результат выполнения кода:
"100 is positive"
Пример
Оператор if с инициализацией часто используется
при работе с функциями, которые возвращают значение
и ошибку:
package main
import (
"fmt"
"strconv"
)
func main() {
if num, err := strconv.Atoi("123"); err == nil {
fmt.Println("Parsed number:", num)
}
}
Результат выполнения кода:
"Parsed number: 123"
Вложенные условия
Операторы if могут быть вложены друг в друга
для проверки нескольких условий последовательно.
Пример
Проверим число на положительность и четность с помощью
вложенных if:
package main
import "fmt"
func main() {
x := 8
if x > 0 {
if x%2 == 0 {
fmt.Println("x is positive and even")
}
}
}
Результат выполнения кода:
"x is positive and even"
Смотрите также
-
оператор
else,
который выполняет код при ложном условии -
оператор
switch,
который проверяет множество значений -
оператор
fallthrough,
который передает управление в следующую ветку switch -
оператор
for,
который организует циклы в Go