À 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.

  1. 02/10/2024 - revisão 3 - Ajuste pontuais
  2. 30/08/2024 - revisão 2 - Correção de namespace que gerava erro ao carregar página
  3. 29/05/2023 - revisão 1 - Correção em navegação e erros gramaticais
  4. 08/05/2023 - versão inicial