Как использовать условия в Go

1
Компьютерные новости и новости технологий на Q-Games.ru

Последнее обновление 05.01.2023 — Василий Иванов

Условные операторы позволяют вам выполнять решения на основе логики, которая оценивается как истина или ложь. Некоторые примеры условных операторов включают операторы if, if…else, if…else if.. else и операторы переключения регистра. Go имеет полную поддержку этих условных выражений со знакомым и простым синтаксисом.

Начало работы с Голангом

Чтобы следовать этому руководству, установите Go в локальной среде, если вы еще этого не сделали. Вы также можете протестировать фрагменты кода в этой статье, используя игровую площадку Go.

Если Заявление

Оператор if выполняет блок кода, только если выполняется определенное условие. Вот синтаксис:

if condition {
// Block of code
}

Вот пример, который печатает «Pass», если значение переменнойmarks больше 50:

marks := 60

if marks > 50 {
fmt.Println("Pass")
}

Вы также можете объявить переменную меток в операторе if следующим образом:

if marks := 60; marks > 50 {
fmt.Println("Pass")
}

При комбинировании условий Go позволяет использовать знакомые по другим языкам логические операторы, такие как И(&&), ИЛИ (||) и НЕ(!).

По теме:  Поклонники покемонов начинают думать, что профессор Сада и Туро могут быть злодеями

Оператор AND возвращает true, только если значения справа и слева от него истинны:

sunny := true
noClass := true

if sunny && noClass {
fmt.Println("Go to the beach")
}

Оператор ИЛИ возвращает значение true, если одно из значений справа или слева истинно:

today := "Sunday"

if today == "Sunday" || today == "Saturday" {
fmt.Println("Sleep in")
}

Оператор НЕ возвращает истину, только если значение ложно:

marks := true

if !marks {
fmt.Println("No marks available!")
}

Если…иначе Заявление

Оператор if…else выполняет соответствующий код в зависимости от того, выполняется ли условие.

if condition {
// Executes if condition is met
} else {
// Executes if condition is not met
}

В приведенном ниже примере программа печатает «Пройдено», если общее значение оценок выше 50, и «Не пройдено», если оно ниже.

marks := 60

if marks > 50 {
fmt.Println("Pass")
} else {
fmt.Println("Fail")
}

Если…иначе Если…иначе Заявление

Оператор if…else if…else позволяет комбинировать несколько операторов if.

if condition1 {
// Executess if condition1 is met
} else if condition2 {
// Executess if condition2 is met
} else {
// Executes if neither condition1 nor condition2 is met
}

Расширяя пример if…else, программа ниже также проверяет, выше ли оценки 80, и печатает «сдано с отличием», если это так:

marks := 60

if marks > 80 {
fmt.Println("Passed with distinction")
} else if marks > 50 {
fmt.Println("Pass")
} else {
fmt.Println("Fail")
}

Заявление о переключении

Оператор switch — это условный оператор, который позволяет выполнять различные действия в зависимости от значения выражения. Вы можете определить важные значения как «случаи» и действовать в соответствии с ними.

Оператор switch в Go немного отличается от других языков программирования, таких как C#, JavaScript и Python. Это связано с тем, что он выполняет только блок кода в случае выполнения. Ключевое слово break, необходимое для других языков, здесь не нужно:

switch expression {
case expr1:
// Block of code
case expr2:
// Block of code
default:
// Block of code
}

Приведенный выше код оценивает выражение после ключевого слова switch, а затем сравнивает его с каждым значением case. Если значение совпадает, выполняется следующий блок. У вас может быть столько случаев, сколько вам нужно, но все они должны быть уникальными. Блок по умолчанию запускается, если совпадений нет.

В следующем примере оператор switch используется для отображения элемента «todo» для каждого дня недели.

package main

import (
"fmt"
"time"
)

func main() {
today := time.Now().Weekday()

switch today {
case 0:
fmt.Println("Relax.")
case 1:
fmt.Println("Clean the house.")
case 2:
fmt.Println("Visit the dentist.")
case 3:
fmt.Println("Weed the garden.")
case 4:
fmt.Println("Send gifts")
case 5:
fmt.Println("Do laundry.")
case 6:
fmt.Println("Write a blog post.")
default:
fmt.Println("No task scheduled.")
}
}

Здесь пакет времени Go предоставляет день недели в виде целого числа, и, в зависимости от этого значения, оператор switch печатает определенную задачу.

Когда использовать условные операторы

Условные операторы помогают вам создать поток решений в вашей программе. Как и многие другие языки, Go поддерживает несколько типов условных операторов. Вы можете использовать их для оптимизации вашей программы и обеспечения ее логической работы.

Используйте условные операторы, когда поток вашей программы зависит от определенного значения, такого как ввод пользователя.