Maison > développement back-end > Golang > contrôle des processus Golang

contrôle des processus Golang

WBOY
Libérer: 2023-05-13 11:12:37
original
422 Les gens l'ont consulté

Golang est un langage de programmation efficace et moderne qui offre de riches fonctionnalités en matière de contrôle de processus. Cet article explorera les structures de contrôle de flux dans Golang, y compris les instructions conditionnelles, les instructions de boucle et les instructions de saut, pour aider les lecteurs à mieux comprendre et appliquer ces structures.

Déclarations conditionnelles

Les déclarations conditionnelles dans Golang incluent les instructions if, les instructions switch et les instructions select.

  1. if instruction

if l'instruction est utilisée pour formuler des jugements conditionnels La syntaxe est la suivante :

if condition {
    statement(s)
} else if condition {
    statement(s)
} else {
    statement(s)
}
Copier après la connexion

où condition est une expression conditionnelle utilisée pour juger vrai ou faux. Si la condition est vraie, le bloc d'instructions suivant if est exécuté ; sinon, le bloc d'instructions est ignoré et l'instruction suivante est exécutée.

Si la condition est suivie du mot-clé else if, chaque expression conditionnelle sera évaluée dans l'ordre et le premier bloc d'instructions vrai sera exécuté. Si toutes les expressions conditionnelles sont fausses, le bloc d'instructions suivant le else est exécuté. Sans le bloc else, aucune instruction n'est exécutée si la condition est fausse.

Ce qui suit est un exemple d'instruction if :

package main

import "fmt"

func main() {
    var a int = 10
    if a < 20 {
        fmt.Printf("a 小于 20
")
    }
    fmt.Printf("a 的值为 : %d
", a)
}
Copier après la connexion

Résultat de sortie :

a 小于 20
a 的值为 : 10
Copier après la connexion
  1. instruction switch

l'instruction switch est utilisée pour le jugement multi-conditions, la syntaxe est la suivante :

switch expression {
    case value1:
        statement(s)
    case value2:
        statement(s)
    case value3:
        statement(s)
    default:
        statement(s)
}
Copier après la connexion

Où, l'expression est une expression, utilisée pour faire correspondre une constante ou une variable dans une clause case. Si la correspondance réussit, le bloc d'instructions correspondant est exécuté ; sinon, le bloc d'instructions est ignoré et la clause case suivante (si elle existe) est exécutée.

Si toutes les clauses case ne correspondent pas correctement, le bloc d'instructions suivant la valeur par défaut sera exécuté. S'il n'y a pas de clause par défaut, aucune instruction n'est exécutée.

Ce qui suit est un exemple d'instruction switch :

package main

import "fmt"

func main() {
    var grade string = "B"
    var marks int = 90

    switch marks {
        case 90:
            grade = "A"
        case 80:
            grade = "B"
        case 60, 70:
            grade = "C"
        default:
            grade = "D"
    }

    switch {
        case grade == "A" :
            fmt.Printf("优秀!
" )
        case grade == "B", grade == "C" :
            fmt.Printf("良好
" )
        case grade == "D" :
            fmt.Printf("及格
" )
        case grade == "F":
            fmt.Printf("不及格
" )
        default:
            fmt.Printf("差
" )
    }
    fmt.Printf("你的等级是 %s
", grade )
}
Copier après la connexion

Résultat de sortie :

良好!
你的等级是 B
Copier après la connexion
  1. instruction select

l'instruction select est utilisée pour surveiller plusieurs canaux en même temps La syntaxe est la suivante :

select {
    case communication clause 1:
        statement(s)
    case communication clause 2:
        statement(s)
    .............
    default:
        statement(s)
}
Copier après la connexion

Among. Pour eux, la clause de communication fait référence à un canal ou à une opération de canal avec direction, y compris l'opération d'envoi et l'opération de réception. Si un canal contient des données qui peuvent être lues ou écrites, le bloc d'instructions correspondant est exécuté ; sinon, le canal est ignoré et la clause de communication suivante est exécutée ; Si aucune donnée n'est lisible ou inscriptible sur aucun canal, le bloc d'instruction suivant la valeur par défaut est exécuté.

Ce qui suit est un exemple d'instruction select :

package main

import "fmt"

func fibonacci(c, quit chan int) {
    x, y := 0, 1
    for {
        select {
        case c <- x:
            x, y = y, x+y
        case <-quit:
            fmt.Println("quit")
            return
        }
    }
}

func main() {
    c := make(chan int)
    quit := make(chan int)
    go func() {
        for i := 0; i < 10; i++ {
            fmt.Println(<-c)
        }
        quit <- 0
    }()
    fibonacci(c, quit)
}
Copier après la connexion

Résultat de sortie :

0
1
1
2
3
5
8
13
21
34
quit
Copier après la connexion

Instruction de boucle

Les instructions de boucle dans Golang incluent des instructions for et des instructions range.

  1. instruction for

l'instruction for est utilisée pour exécuter un morceau de code dans une boucle. La syntaxe est la suivante :

for init; condition; post {
    statement(s);
}
Copier après la connexion

Parmi eux, init est utilisé pour démarrer la boucle, la condition est utilisée pour déterminer si la boucle. continue et post est utilisé pour contrôler le fonctionnement des variables de boucle.

Ce qui suit est un exemple d'instruction for :

package main

import "fmt"

func main() {
    var b int = 15
    var a int

    for i := 0; i < 10; i++ {
        fmt.Printf("i 的值为: %d
", i)
    }

    for a < b {
        a++
        fmt.Printf("a 的值为: %d
", a)
    }
}
Copier après la connexion

Résultat de sortie :

i 的值为: 0
i 的值为: 1
i 的值为: 2
i 的值为: 3
i 的值为: 4
i 的值为: 5
i 的值为: 6
i 的值为: 7
i 的值为: 8
i 的值为: 9
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
a 的值为: 15
Copier après la connexion
  1. instruction range

L'instruction range est utilisée pour parcourir les éléments d'un tableau, d'une tranche, d'un canal ou d'une carte. La syntaxe est la suivante. comme suit :

for key, value := range oldMap {
    newMap[key] = value
}
Copier après la connexion

où, key et value représentent respectivement la clé et la valeur de l'élément actuel.

Ce qui suit est un exemple d'instruction de plage :

package main

import "fmt"

func main() {
    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)

    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }

    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s
", k, v)
    }
}
Copier après la connexion

Résultat de sortie :

sum: 9
index: 1
a -> apple
b -> banana
Copier après la connexion

Instruction Jump

Les instructions Jump en Golang incluent break, continue et goto.

  1. instruction break

instruction break est utilisée pour interrompre le corps de la boucle, la syntaxe est la suivante :

for i := 0; i < 10; i++ {
    if i == 5 {
        break
    }
    fmt.Printf("%d ", i)
}
fmt.Println()
Copier après la connexion

Résultat de sortie :

0 1 2 3 4
Copier après la connexion
  1. instruction continue

instruction continue est utilisée pour interrompre cette itération du courant corps de la boucle, la syntaxe est la suivante :

for i := 0; i < 10; i++ {
    if i == 5 {
        continue
    }
    fmt.Printf("%d ", i)
}
fmt.Println()
Copier après la connexion

Résultat de sortie :

0 1 2 3 4 6 7 8 9
Copier après la connexion
  1. instruction goto

l'instruction goto est utilisée pour accéder sans condition à une certaine étiquette de code (étiquette) pour l'exécution. La syntaxe est la suivante :

goto label;
...
label: statement
Copier après la connexion
.

où l'étiquette est un identifiant et l'instruction est une instruction d'exécution.

Ce qui suit est un exemple d'instruction goto :

package main

import "fmt"

func main() {
    i := 0
Again:
    fmt.Printf("循环执行次数:%d
", i)
    i++
    if i < 10 {
        goto Again
    }
}
Copier après la connexion

Résultat de sortie :

循环执行次数:0
循环执行次数:1
循环执行次数:2
循环执行次数:3
循环执行次数:4
循环执行次数:5
循环执行次数:6
循环执行次数:7
循环执行次数:8
循环执行次数:9
Copier après la connexion

Résumé

Les structures de contrôle de flux dans Golang incluent des instructions conditionnelles, des instructions de boucle et des instructions de saut. Les instructions conditionnelles incluent les instructions if, switch et select, qui sont utilisées pour effectuer des jugements sur une ou plusieurs conditions. Les instructions de boucle incluent les instructions for et range, qui sont utilisées pour parcourir un morceau de code ou parcourir un élément. Les instructions de saut incluent les instructions break, continue et goto, qui sont utilisées pour interrompre la boucle en cours ou accéder sans condition à une étiquette pour exécution. Dans la programmation réelle, il est nécessaire de sélectionner de manière flexible la structure de contrôle de processus appropriée en fonction des besoins de mise en œuvre de la logique du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal