A questão trata do conceito de algoritmo estruturado, que é independente de como as linguagens implementam os conceitos.
Nesta disciplina existem as seguintes extruturas:
seleção: Permite a escolha de um entre dois ou mais caminhos de execução: IF, IF/ELSE e CASE
=> IF: seleção simples, undirecional
=> IF/Else: seleção bidirecional;
=> Case: seleção n-direcional ou múltipla
Iteração ou repetição: Permite a iteração ou repetição de comando ou bloco: faça-enquanto, repita-até que e PARA
=> faça-enquanto:
- Pré-teste: validação ocorre no início do bloco de comandos;
- condição de saída: executa enquanto a condição é verdadeira;
- quantidade de execuções: pode não ser executado nenhuma vez;
=> repita:
- Pós-teste: validação da condição ocorre no final do bloco de comandos
- condição de saída: executa enquanto a condição for falsa;
- quantidade de execuções: executa, obrigatoriamente uma vez,
=> Para: lembre-se: é um conceito e não está relacionado com como as linguagens implementam;
- condição de saída: quando contador atingir valor definido no início da iteraão;
- quantidade de execuções: conforme contador ou se houver condição de escape.
Desvio incondicional: Vá-Para:
=> GOTO: uso desaconselhado por causar problemas de legibilidade