À medida que um programa cresce, em relação à complexidade, muitas vezes é necessário utilizar várias
instruções umas dentro das outras. Quando isso acontece, dizemos que as instruções estão aninhadas.
As instruções explicadas anteriormente podem ser escritas de forma aninhada como abaixo:
Exemplo 1
Comando se aninhado
programa
{
funcao inicio()
{
logico condicaoA, condicaoB
condicaoA = verdadeiro
condicaoB = falso
//outras instruções omitidas
se (condicaoA == verdadeiro)
{
escreva("condicaoA")
se (condicaoB == falso)
{
escreva("condicaoB")
}
}
}
}
Saída
condicaoA
condicaoB
Exemplo 2
Comando enquanto aninhado
programa
{
funcao inicio()
{
inteiro contador1,contador2
contador1 = 0
contador2 = 0
//outras instruções omitidas
enquanto(contador1 < 3)
{
escreva(contador1," ")
contador1 = contador1 + 1
contador2 = 0
enquanto(contador2 < 3)
{
escreva(contador2)
contador2 = contador2 + 1
}
escreva("\n")
}
}
}
Saída
0 012
1 012
2 012
Exemplo 3
Comando para aninhado
programa
{
funcao inicio()
{
inteiro contador , contador2;
contador =0;
contador =0;
//outras instruções omitidas
faca
{
escreve(contador)
escrever("\n")
contador1 = contador1 + 1
//outras instruções omitidas
faca
{
escreve(contador2)
contador2 = contador2 + 1
//outras instruções omitidas
}
enquanto(contador2 < 3)
escrever("\n")
}
enquanto (contador < 3)
}
}
Saída
0
012
1
3
2
4
Exemplo 4
Comando escolha aninhado
programa
{
funcao inicio()
{
inteiro tipo1, tipo2
tipo1 = 1
tipo2 = 3
escolha(tipo1)
{
caso 1 :
escreva("tipo 1\n")
escolha(tipo2)
{
caso 3 :
escreva("subtipo 3\n")
pare
caso 4 :
escreva("subtipo 4\n")
pare
caso contrario:
escreva("subtipo inválido\n")
}
pare
caso 2 :
escreva("tipo 2\n")
pare
caso contrario:
escreva("tipo inválido")
}
}
}
Saída
tipo 1
subtipo 3
É importante ter em mente que na medida que os algoritmos vão ficando mais e mais complexos, todas as
instruções discutidas anteriormente serão usadas “misturadas” uma dentro das outras.
Exemplo 5
programa
{
faca
{
//instruções
escolha (condição)
{
caso 1:
//omitido
para (valor ; condicao ; incremento)
{
//omitido
para (valor ; condicao ; incremento)
{
//omitido
se (condição)
{
//omitido
se (condição)
{
//omitido
}
}
senao
{
//omitido
}
}
}
pare
caso 2:
//omitido
pare
caso contrario:
//omitido
pare
}
}
enquanto (condição)
}
Saída
-
Os exemplos acima foram criados para entender o conceito do aninhamento de forma mais simples.
À medida que os programas ficam mais complexos, é feito o uso da procedimentos/funções para
melhor leitura, organização e compreensão.