Blocos de Código

Entenda a estrutura fundamental: `:` inicia e `fim` encerra blocos.

A Regra do `:` e `fim`

Em MambaScript, todo bloco de código segue uma regra simples:

: indica o início de um bloco
fim indica o fim desse bloco

Isso se aplica a condicionais, loops e funções — sem exceção. Se faltar um deles, você receberá um erro.

Correto vs Incorreto

✓ Correto

se idade >= 18: escreva "Maior de idade" fim

✗ Errado - Falta o `:`

se idade >= 18 escreva "Maior de idade" fim

Erro: esperava `:` após a condição

✗ Errado - Falta `fim`

se idade >= 18: escreva "Maior de idade"

Erro: bloco não foi encerrado com `fim`

Condicional `se` / `senao`

se condicao: # código se verdadeiro senao: # código se falso fim

Nota: O `senao` também leva `:` e não tem `fim` próprio — o `fim` fecha o bloco inteiro do `se`.

Exemplo prático:

variavel nota = 7 se nota >= 5: escreva "Aprovado" senao: escreva "Reprovado" fim

Condicional Encadeada (`senao se`)

Você pode encadear múltiplas condições:

variavel nota = 7 se nota >= 9: escreva "Excelente" senao: se nota >= 7: escreva "Ótimo" senao: escreva "Precisa melhorar" fim fim

💡 Dica: Cada `se` tem o seu próprio `fim`.

Loop `enquanto`

enquanto condicao: # código repetido fim

Exemplo:

variavel contador = 1 enquanto contador <= 5: escreva "Contagem: " + contador contador = contador + 1 fim

Loop `para`

para variavel de inicio ate fim: # código repetido fim

Exemplo:

para i de 1 ate 10: escreva i fim

Funções

funcao nome(parametros): # código da função retorna valor fim

Exemplo:

funcao somar(a, b): retorna a + b fim escreva somar(3, 5)

Blocos Aninhados (Nested)

Blocos podem estar dentro de outros blocos. Cada um precisa do seu próprio `fim`:

para i de 1 ate 3: se i == 2: escreva "Encontrei o 2!" senao: escreva "Número: " + i fim fim

💡 Dica: Se estás a receber erro de `fim` inesperado, conta quantos blocos abriu e quantos `fim` tens — devem ser iguais!

Checklist: Evitar Erros

  • Todo `se`, `senao`, `enquanto`, `para` e `funcao` tem `:` no final
  • Todo bloco é encerrado com `fim`
  • Blocos aninhados têm um `fim` para cada abertura
  • `senao` não precisa de seu próprio `fim`
  • Indentação ajuda a visualizar blocos (embora não seja obrigatória)