English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
As decisões na programação são semelhantes às decisões na vida real. Em decisões, um bloco de código é executado quando uma condição específica é atendida. Às vezes, essas também são chamadas de instruções de controle de fluxo.GolangUsar a instrução especificada para determinar o fluxo de execução do programa com base em certas condições. Essas são usadas para avançar e ramificar o fluxo de execução do programa com base nas mudanças no estado do programa.
As estruturas de decisão no Go são:
Esta é a decisão mais simples. Usada para decidir se uma instrução ou bloco de instruções deve ser executado, ou seja, se uma condição forVerdadeiroentão execute o bloco de instruções, caso contrário, não execute.
Sintaxe:
if(condition) { //Instrução a ser executada pelo if //condition é verdadeira }
Diagrama de fluxo:
Exemplo:
//Uso da instrução if package main import "fmt" func main() { //Obter a variável local var v int = 700 //Uso da instrução if //Verificar a condição if v < 1000 { //Imprimir o seguinte conteúdo, a avaliação da condição é true fmt.Printf("v é menor que1000\n") } fmt.Printf("O valor de v é: %d\n", v) }
Saída:
v é menor que1000 O valor de v é: 700
A estrutura if nos informa que, se a condição for true, ela executará o bloco de instruções, se a condição for false, não executará. Mas e se precisarmos fazer outra coisa quando a condição for false? Nesse caso, usamos a estrutura else. Quando a condição for false, podemos usar a estrutura else junto com a estrutura if para executar o bloco de código.
Sintaxe:
if (condition) {}} // Se a condição for verdadeira, execute este bloco de código } else { // Se a condição for falsa, execute este bloco de código }
Diagrama de fluxo:
// Uso de if...else package main import "fmt" func main() { //Variável local var v int = 1200 // Verifique a condição usando a instrução if if v < 1000 { //Imprima o seguinte conteúdo, se a condição avaliada for verdadeira fmt.Printf("v < 1000\n") } else { //Imprima o seguinte conteúdo, se a condição avaliada for falsa fmt.Printf("v > 1000\n") } }
Saída:
v > 1000
Em Go, um if aninhado é uma instrução if que é o alvo de outro if ou else. Uma instrução if aninhada é uma instrução if dentro de outra instrução if. Sim, o Golang permite que você aninhemos if dentro de if. Podemos colocar um if dentro de outro if.
Sintaxe:
if (condition1) { // quando a condição1se for verdadeira, execute if (condition2) { // quando a condição2se for verdadeira, execute } }
Diagrama de fluxo:
//Uso de if aninhado package main import "fmt" func main() { //duas variáveis locais var v1 int = 400 var v2 int = 700 //Uso da instrução if if( v1 == 400 ) { // Se a condição for verdadeira, execute if( v2 == 700 ) { // Se a condição for verdadeira, execute a impressão de saída fmt.Printf("v1o valor é400, v2o valor é700\n") } } }
Saída:
v1o valor é400, v2o valor é700
Aqui, o usuário pode escolher entre várias opções. A instrução if é executada de cima para baixo. Assim que qualquer condição do if for verdadeira, as instruções associadas ao if serão executadas e saltadas as outras instruções if. Se nenhuma condição for atendida, a instrução else final será executada.
Importante:
a instrução if pode ter 0 ou1if, e deve estar após outros if.
a instrução if pode ter de 0 a múltiplos if e deve estar antes do else
Se o else if for bem-sucedido, nenhum outro else if ou else será executado
Sintaxe:
if(condition_1) { //condition_1Se for verdadeira, execute este bloco de código } else if(condition_2) { //condition_2Se for verdadeira, execute este bloco de código } else { //Se nenhuma condição for verdadeira, execute este bloco de código }
Diagrama de fluxo:
package main import "fmt" func main() { var v1 int = 700 if(v1 == 100) { // se a condição for verdadeira, exiba o seguinte conteúdo fmt.Printf("v1o valor é100\n") } else if(v1 == 200) { fmt.Printf("v1o valor é200\n") } else if(v1 == 300) { fmt.Printf("v1o valor é300\n") } else { //se nenhuma condição for verdadeira fmt.Printf("没有匹配的值\n") } }
Saída:
Nenhum valor correspondente