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 if com 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

  1. A instrução n := 10 é executada antes da condição e a variável n fica restrita ao bloco if/else.
  2. A primeira condição n > 0 é avaliada; se verdadeira, imprime "positivo".
  3. Se falsa, testa n < 0; se verdadeira, imprime "negativo".
  4. Se ambas falsas, o else imprime "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 > 0 gera erro de sintaxe.
  • Tentar usar n fora do bloco: fmt.Println(n) após o if causa 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