Fácil Go
Classificação de números
Enunciado
Escreva um programa que classifique um número inteiro n como "positivo", "negativo" ou "zero" usando if com init. O número deve ser declarado dentro do if.
Requisitos
- Usar
ifcom instrução de inicialização. - Imprimir a classificação correta.
- O programa deve compilar e rodar.
Código inicial
package main
import "fmt"
func main() {
// declare n dentro do if
}
Saída esperada
positivo
Ver dica
A sintaxe é if n := 10; n > 0 { ... } else if n < 0 { ... } else { ... }.
Mostrar solução
package main
import "fmt"
func main() {
// if com init: n é declarado e usado apenas no bloco condicional
if n := 10; n > 0 {
fmt.Println("positivo")
} else if n < 0 {
fmt.Println("negativo")
} else {
fmt.Println("zero")
}
}
Passo a passo
- A instrução
n := 10é executada antes da condição e a variávelnfica restrita ao blocoif/else. - A primeira condição
n > 0é avaliada; se verdadeira, imprime "positivo". - Se falsa, testa
n < 0; se verdadeira, imprime "negativo". - Se ambas falsas, o
elseimprime "zero".
Por que funciona
O if com init permite declarar variáveis temporárias sem poluir o escopo externo. A estrutura condicional garante que apenas um dos blocos seja executado.
Erros comuns
- Esquecer o
;após a inicialização:if n := 10 n > 0gera erro de sintaxe. - Tentar usar
nfora do bloco:fmt.Println(n)após oifcausa erro de compilação.
Outra forma de resolver
Declarar n fora do if:
n := 10
if n > 0 { ... }
Menos idiomático quando n só é usado na condição.
Saída esperada
positivo