Golang 8 : Les boucles

in #utopian-io7 years ago

Les boucles

image.png

Les boucles sont utilisées pour exécuter un bloc de code. Go n'a pas de boucles while ou do while qui sont disponibles pour d'autres langages.

Le syntaxe des boucles

for initialisation; condition; post {  
}

La déclaration initialisation ne sera exécutée qu'une seule fois. Après que la boucle soit initialisée, la condition va être vérifiée. Si la condition est vraie, alors le corps de la boucle qui se trouve entre { } va être exécuté suivi d'une déclaration post. La déclaration post va être exécutée après chaque itération de la boucle. Après que la déclaration post soit exécutée, la condition est revérifiée. L'itération continue tant que la condition est vraie.

Les trois composants initialisation, condition, post sont tous optionnels en Go. Voici un exemple pour mieux comprendre les boucles.

Exemple:

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 5; i++ {
        fmt.Printf(" %d",i)
    }
}

Dans le programme ci-dessus, i est initialisé à 1. La déclaration conditionnelle va vérifier si i<=5, si celle-là est bien vérifiée, la valeur de i va être affichée, puis la déclaration post va incrémenter i de 1 à la fin de chaque itération. Une fois i devient supérieur à 5, on sort de la boucle.

Le programme ci-dessus va afficher 1 2 3 4 5

Les variables déclarées à l'intérieur de la boucle ne sont disponibles qu'à l'intérieur de la boucle.

break

La déclaration break est utilisée pour sortir de la boucle for avant que son exécution normale soit terminée pour passer directement à la ligne de code qui vient juste après la boucle for.

Voici un programme où break intervient:

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 10; i++ {
        if i > 5 {
            break //loop is terminated if i > 5
        }
        fmt.Printf("%d ", i)
    }
    fmt.Printf("\nla ligne juste après la boucle for")
    }

Dans le programme ci-dessus, la valeur de i est vérifiée à chaque itération, une fois i devient strictement supérieur à 5, on sort de la boucle pour exécuter la déclaration d'affichage. La sortie du programme serait:

1 2 3 4 5
la ligne juste après la boucle for

Continue

La déclaration continue est utilisée pour sauter l'itération courante de la boucle for. tout le code qui vient après continue ne sera pas exécuté pour l'itération courante. La boucle va sauter à l'itération suivante.

Voici un programme qui affiche tous les nombres impairs de 1 à 10.

package main

import (  
    "fmt"
)

func main() {  
    for i := 1; i <= 10; i++ {
        if i%2 == 0 {
            continue
        }
        fmt.Printf("%d ", i)
    }
}

Dans le programme ci-dessus, seuls les nombres impairs sont affichés, une fois i%2 == 0 est vérifiée, ce qui reste du code à l'intérieur de la boucle n'est pas exécuté, par conséquent, on passe à la prochaine itération.

Par conséquent, la sortie du programme est 1 3 5 7 9

Exemples:

Le programme suivant affiche tous les nombres compris entre 0 et 10.

package main

import (  
    "fmt"
)

func main() {  
    i := 0
    for ;i <= 10; { 
        fmt.Printf("%d ", i)
        i += 2
    }
}

Dans le programme ci-dessus, l'incrémentation est faite à 2, c'est la raison pour laquelle cela est indiqué à l'intérieur de la boucle.

Les points virgules dans la boucle for peuvent être enlevés, ce qui sert d'alternative pour la boucle while. Le programme ci-dessus peut être réécrit comme suivant:

package main

import (  
    "fmt"
)

func main() {  
    i := 0
    for i <= 10 { //les points virgules sont enlevés et seule la condition est présente
        fmt.Printf("%d ", i)
        i += 2
    }
}

Boucle infinie

Le syntaxe pour créer une boucle infinie est:

for{
  
}

Le programme suivant va afficher Hello world sans cesse:

package main

import "fmt"

func main() {  
    for {
        fmt.Println("Hello World")
    }
}

Si vous essayez d'exécuter ce programme dans go playground, vous allez avoir une erreur "process took too long".



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @raptorjesus I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x