1 Visão geral das Declarações Condicionais
As declarações condicionais são ferramentas importantes para controlar o fluxo lógico dos programas de programação. Em Golang, as declarações condicionais são similares às de outras linguagens de programação, mas possuem suas próprias características. Elas nos permitem decidir qual código executar com base em condições verdadeiras ou falsas, aumentando significativamente a flexibilidade e a manutenibilidade do código.
2 Declaração if
2.1 Uso Básico da Declaração if
A declaração if
é a declaração condicional mais básica na linguagem Go. Sua sintaxe é a seguinte:
if condição {
// Código a ser executado quando a condição for verdadeira
}
Aqui está um exemplo simples:
pacote principal
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x é maior que 5")
}
}
Este código verificará se x
é maior que 5 e, se for, realizará a operação de impressão.
2.2 Expressões Condicionais
As expressões condicionais consistem em operadores de comparação (como ==
, !=
, <
, >
, <=
, >=
) e operadores lógicos (como &&
(E), ||
(OU), !
(NÃO)).
Por exemplo, para verificar se uma variável está dentro de determinado intervalo:
y := 20
if y >= 10 && y <= 30 {
fmt.Println("y está entre 10 e 30")
}
A expressão condicional acima utiliza o operador lógico &&
para garantir que o valor de y
esteja entre 10 e 30.
2.3 Estrutura if...else e else if
Quando a condição do if
não é atendida, podemos usar else
para executar um bloco de código alternativo. O else if
nos permite verificar múltiplas condições. Aqui está um exemplo:
pontuação := 88
if pontuação >= 90 {
fmt.Println("Excelente")
} else if pontuação >= 80 {
fmt.Println("Bom")
} else if pontuação >= 70 {
fmt.Println("Médio")
} else {
fmt.Println("Abaixo da Média")
}
Este código imprimirá diferentes avaliações com base no valor da pontuação
.
3 Declaração switch
3.1 Sintaxe Básica do switch
A declaração switch
é uma declaração de ramificação condicional mais concisa, especialmente adequada para situações em que múltiplos valores precisam ser avaliados. A sintaxe básica da declaração switch
é a seguinte:
switch expressão {
case valor1:
// Código a ser executado quando o valor corresponder ao valor1
case valor2:
// Código a ser executado quando o valor corresponder ao valor2
padrão:
// Código a ser executado por padrão
}
Se o valor da expressão
corresponder ao valor após case
, o respectivo bloco de código será executado.
3.2 Fallthrough do switch
Na declaração switch
do Go, cada ramificação não passa para o próximo caso por padrão, a menos que a palavra-chave fallthrough
seja usada.
switch num {
case 1:
fmt.Println("Um")
fallthrough
case 2:
fmt.Println("Dois")
padrão:
fmt.Println("Nem Um nem Dois")
}
No código acima, se num
for 1, mesmo que corresponda a case 1
, devido à presença da palavra-chave fallthrough
, o programa continuará a executar o código em case 2
e imprimirá "Dois".
3.3 Ramificação de Tipo e Ramificação Personalizada
A declaração switch
também suporta ramificação com base em tipos de variáveis, conhecida como ramificação de tipo. Além disso, podemos criar condições de ramificação personalizadas mais complexas conforme necessário.
Exemplo de ramificação de tipo:
var i interface{} = 1
switch i.(type) {
case int:
fmt.Println("i é um inteiro")
case float64:
fmt.Println("i é um float64")
padrão:
fmt.Println("i é outro tipo")
}
Condições de ramificação personalizadas podem ser escritas para realizar julgamentos condicionais mais complexos, conforme necessário.
4 Exercício Prático
Nesta seção, aprofundaremos nossa compreensão e aplicação das declarações condicionais em Golang através de exemplos específicos. Através de desafios de programação práticos, você se tornará mais proficiente no uso das declarações if
e switch
para resolver problemas do mundo real.
Calculadora de Notas
Vamos escrever uma calculadora de notas simples. Este programa irá determinar e exibir a nota correspondente com base na pontuação inserida pelo usuário. Os critérios de classificação são os seguintes:
- A para pontuações de 90 ou mais
- B para pontuações entre 80 e 89
- C para pontuações entre 70 e 79
- D para pontuações entre 60 e 69
- F para pontuações abaixo de 60
Podemos usar uma instrução if
ou uma instrução switch
para implementar esta funcionalidade. Primeiro, vamos ver um exemplo usando uma instrução if
:
pacote principal
import (
"fmt"
)
func main() {
var pontuacao int
fmt.Print("Por favor, insira a pontuação: ")
fmt.Scan(&pontuacao)
if pontuacao >= 90 {
fmt.Println("Nota: A")
} else if pontuacao >= 80 {
fmt.Println("Nota: B")
} else if pontuacao >= 70 {
fmt.Println("Nota: C")
} else if pontuacao >= 60 {
fmt.Println("Nota: D")
} else {
fmt.Println("Nota: F")
}
}
Neste código, primeiro declaramos uma variável pontuação
para armazenar a pontuação inserida pelo usuário. Usamos a função fmt.Scan
para obter a entrada do usuário. Em seguida, usamos várias instruções if
e else if
para determinar a nota correspondente para a pontuação e usamos a função fmt.Println
para exibir a nota.
Em seguida, vamos ver um exemplo usando uma instrução switch
:
pacote principal
import (
"fmt"
)
func main() {
var pontuacao int
fmt.Print("Por favor, insira a pontuação: ")
fmt.Scan(&pontuacao)
switch {
case pontuacao >= 90:
fmt.Println("Nota: A")
case pontuacao >= 80:
fmt.Println("Nota: B")
case pontuacao >= 70:
fmt.Println("Nota: C")
case pontuacao >= 60:
fmt.Println("Nota: D")
default:
fmt.Println("Nota: F")
}
}
No exemplo usando a instrução switch
, a estrutura do código é mais concisa e clara. Não precisamos usar muitas instruções if
e else if
consecutivas; em vez disso, especificamos diretamente as condições em cada case
após o switch
. A pontuação que não corresponde à condição do case
anterior avança automaticamente para o próximo case
até corresponder ao ramo condicional correspondente ou atingir o caso default
, que imprime a nota F
.
Agora que você aprendeu como usar if
e switch
para julgamentos condicionais, tente escrever seu próprio programa e pratique para aprofundar seu entendimento.
Na próxima seção, vamos continuar a introduzir mais problemas práticos para ajudar a consolidar seu domínio das declarações condicionais em Golang.
Observe que o código acima é para fins instrutivos. Ao ser usado em aplicações práticas, fatores como interação com o usuário e tratamento de erros devem ser considerados para torná-lo mais robusto.