Golang 7 : La déclaration if else

in #utopian-io7 years ago (edited)

La déclaration if else

image.png

if est une déclaration conditionnel, Le syntaxe de cette déclaration est comme suivant:

if condition {  
}

si la condition est vraie, les lignes de code qui se trouvent entre {} sont exécutées.

Contrairement aux autres langages comme C, les {} sont obligatoires même s'il n'y a qu'une seule déclaration entre {}.

La déclaration de if a des composants optionnels elseif et else.

if condition {  
} else if condition {
} else {
}

On peut rencontrer beaucoup de else if. La condition est évaluée du début à la fin. Si la condition if ou else if est vraie, le bloc correspondant est exécuté, si aucune de ces conditions n'est vraie alors le bloc de else est exécuté.

Voici un programme qui teste si un nombre est pair ou impair.

package main

import (  
    "fmt"
)

func main() {  
    num := 4
    if num % 2 == 0 { //teste si le nombre est pair
        fmt.Println("le nombre est pair") 
    }  else {
        fmt.Println("le nombre est impair")
    }
}

Il y'a une autre version de if qui inclut un composant optionnel statement qui est exécuté avant que la condition soit évaluée. Le syntaxe est comme suivant:

if statement; condition{
  
}

On réécrit le programme précédent en utilisant le syntaxe ci-dessus:

package main

import (  
    "fmt"
)

func main() {  
    if num := 4; num % 2 == 0 { //teste si le nombre est pair
        fmt.Println(num,"est pair") 
    }  else {
        fmt.Println(num,"est impair")
    }
}

Dans le programme ci-dessus, num est initialisé dans la déclaration if . On doit noter que num est accessible que de l'intérieur de if et else.

Voici un autre programme qui utilise else if.

package main

import (  
    "fmt"
)

func main() {  
    num := 100
    if num <= 39 {
        fmt.Println("nombre inférieur ou égal à 39")
    } else if num >= 40 && num <= 89 {
        fmt.Println("nombre compris entre 40 et 89")
    } else {
        fmt.Println("le nombre est supérieur à 89")
    }

}

Gotcha

La déclaration else doit commencer dans la même ligne après }. Sinon il y'aura une erreur de compilation.

Exemple:

package main

import (  
    "fmt"
)

func main() {  
    num := 4
    if num % 2 == 0 { //teste si le nombre est pair
        fmt.Println("le nombre est pair") 
    }  
    else {
        fmt.Println("le nombre est impair")
    }
}

Si vous exécutez ce programme, vous aurez une erreur de compilation:

main.go:12:5: syntax error: unexpected else, expecting }

La raison est que Go insère des points virgules automatiquement après une déclaration if.

Notre programme devient:

if num%2 == 0 {  
      fmt.Println("le nombre est pair") 
};  //point virgule inséré par go
else {  
      fmt.Println("le nombre est impair")
}

if{…} else {…} est une seule déclaration, le point virgule ne doit pas être présent dans le milieu de cette déclaration et c'est la raison pour laquelle il faut toujours placer else dans la même ligne juste après ( } ).

Voici le programme réécrit après avoir enlever le else après le( } ) de la déclaration if pour éviter l'insertion automatique des points virgules .

package main

import (  
    "fmt"
)

func main() {  
    num := 4
    if num%2 == 0 { //tester si le nombre est pair
        fmt.Println("le nombre est pair") 
    } else {
        fmt.Println("le nombre est impair")
    }
}



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