Estruturas condicionais e de repetição

Ao iniciar os estudos em programação nos deparamos com as estruturas condicionais e de repetição, que são dois pilares em relação a lógica de programação.

Lógica de Programação Completo
Curso de Lógica de Programação Completo
CONHEÇA O CURSO

Estruturas condicionais simples (SE – IF)

Primeiramente, uma estrutura condicional é baseada em uma condição que se for atendida o algoritmo toma uma decisão. Nós podemos representar uma estrutura condicional conforme o algoritmo abaixo.

SE (a > b) ENTÃO
    Exibir mensagem "o número A é maior que o número B".
FIM SE

Utilizando a Linguagem C, este algoritmo seguirá a seguinte sintaxe:

if (a > b) {
    printf("o número %d maior que o número %d", a, b);
}

Obs: exemplo utilizando a linguagem C, porém o fundamento das estruturas condicionais são os mesmos para quaisquer linguagens, alterando somente a sintaxe particular de cada linguagem.

Note que o código acima representa a seguinte condição: se o número A for maior que o número B, o algoritmo irá entender que a condição é verdadeira e deve exibir a mensagem “o número A é maior que o número B”, se esta condição não for atendida, ou seja, se ela for falsa, o algoritmo não irá tomar nenhuma ação, pois ela não atende a condição.

Para facilitar o entendimento, podemos representar a estrutura condicional acima utilizando um fluxograma:
Estruturas condicionais - simples (Se - IF)

Caso o algoritmo precise tomar uma decisão dependendo da estrutura de condição, nós podemos utilizar a estrutura condicional composta.

Estruturas condicionais composta (SENÃO – ELSE)

A diferença em relação a estrutura condicional simples é que se a condição for falsa nosso algoritmo também irá tomar uma ação neste caso, seguindo o exemplo anterior:

SE (a > b) ENTÃO
    Exibir mensagem "o número A é maior que o número B".
SENÃO
    Exibir mensagem "o número A é menor que o número B".

Utilizando a Linguagem C, esse algoritmo seguirá a seguinte sintaxe:

if (a > b) {
    printf("o número %d é maior que o número %d", a, b);
} else {
    printf("o número %d é menor que o número %d", a, b);
}

Note que o código acima representa a seguinte condição: se o número A for maior que o número B, o algoritmo irá entender que a condição é verdadeira e deve exibir a mensagem “o número A é maior que o número B”, se esta condição não for atendida, ou seja, se ela for falsa.

Diferente do exemplo sobre estrutura condicional simples onde o algoritmo não tomava nenhuma ação, aqui ele toma uma decisão diferente, exibindo a mensagem “o número A é menor que o número B”.

Para facilitar o entendimento, podemos representar a estrutura condicional acima utilizando um fluxograma:
Estruturas Condicionais - Composta (senão - else)

Casos mais complexos podem exigir a utilização de estruturas de repetição também conhecido como loop ou laço de repetição, onde o algoritmo repete uma ação até que ela não seja mais atendida.

Lógica Orientada a Objetos Completo
Curso de Lógica Orientada a Objetos Completo
CONHEÇA O CURSO

Estruturas de repetição

Para situações que será necessário repetir uma tarefa mais de uma vez podemos contar com as estruturas de repetição.

ENQUANTO (While)

Uma das condições que podemos usar é o enquanto, ou seja, enquanto a expressão booleana for verdadeira o algoritmo executa o bloco proposto, por fim é necessário que algo dentro do bloco altere a condição.

Podemos exemplificar o uso do enquanto supondo um algoritmo que retorne o resultado de uma tabuada, onde:

i sendo uma variável inteira de valor 1.

ENQUANTO i ≤ 10
    Exibir "9 x i = (9 * i)"
    Soma i = i + 1;
FIM DA CONDIÇÃO

Utilizando a Linguagem C, o algoritmo seguirá a seguinte sintaxe:

while (i <= 10) {
       printf("9 x %d = %d\n", i, 9 * i);
       i++;
   }

Note que a condição que empregamos no algoritmo é de que a variável i irá repetir o bloco até que o valor dela seja igual a 10. Enquanto isso será exibido a mensagem “9 x i = (9 * i)”, a cada linha executada é somado a variável i o valor 1, essa soma é chamada de iteração. Na maioria das linguagens pode-se referenciar a interação com a sintaxe i++ (variável seguida de dois sinais de mais) ou variável = variável + 1.

Quando i chegar ao valor 11 o algoritmo irá parar de executar o bloco, desta forma o resultado esperado do exemplo acima será:
Exemplo Tabuada

Para facilitar o entendimento, podemos representar a estrutura de repetição acima utilizando um fluxograma:
Estrutura de Repetição - While - For

Outro laço que podemos utilizar é o PARA (for).

PARA (FOR)

A condição PARA tem o mesmo principio que utilizar enquanto (while), porém este recurso é mais utilizado quando se sabe o número de iterações da repetição, como listar os valores de um vetor por exemplo, também vale ressaltar a legibilidade do código mais limpo.

Seguindo o exemplo acima da tabuada, o algoritmo esperado será:

PARA i = 1; i <= 10; i++;
    Exibir "9 x i = (9 * i)"

Utilizando a Linguagem C, o algoritmo seguirá a seguinte sintaxe:

for (int i = 1; i <= 10; i++) {
       printf("9 x %d = %d\n", i, 9 * i);
   }

Note que ao usar o PARA (for) o contador (a variável i) é inicializado e incrementado na própria condição do laço junto a expressão booleana a ser atendida, deixando o código mais limpo e sem a necessidade de criar variáveis adicionais.

No fim o retorno aguardado será o mesmo que do exemplo que utilizamos a do laço enquanto.

Desenvolvedor C# Júnior
Formação: Desenvolvedor C# Júnior
A formação Desenvolvedor C# nível Júnior tem como objetivo fornecer uma introdução ao desenvolvimento com o C# e o .NET Framework da Microsoft. Nesta formação, são abordados tópicos como o desenvolvimento da capacidade analítica, o paradigma orientado a objetos, a preparação do ambiente de desenvolvimento para o .NET Framework e o C# com o Visual Studio e o controle de versão de código através do Git e do GitHub. Alguns aspectos essenciais do C# também são abordados, como a definição de variáveis e operadores lógicos, tipos de dados e conversões de tipos, manipulação de strings, estruturas de controle e estruturas básicas de coleções.
CONHEÇA A FORMAÇÃO
Deixe seu comentário

Formado em Análise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo, atuou em projetos como desenvolvedor Front-End. Nas horas vagas grava Podcast e arrisca uns três acordes no violão.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200