top of page
Estrutuas Condicionais

Estruturas condicionais

 

As estruturas condicionais são usadas em um programa para que ele possa fazer tomadas de decisões baseadas em comparações,

e dependendo dos resultados dessas comparações, o programa decidirá o fluxo que deve seguir.

Nas próximas seções serão abordados os principais comandos utilizados nas estruturas

de controle de fluxo.

Comando IF

O comando IF trata-se de uma estrutura de decisão baseada em uma condição, cujo o resultado será sempre falso ou verdadeiro,

o qual determinará se uma ação ou um bloco de ações serão ou não executados.

Sintaxe

//Bloco de ações

 

IF(<CONDIÇÃO>)

{

<bloco de ações>

}

//Ação única

IF( <CONDIÇÃO> ) <ação única>;

 

 

Comando IF e ELSE

 

O comando IF permite apenas que uma ação seja executada quando a condição for verdadeira, caso contrário nada acontece.

Já o conjunto de comandos IF/ELSE, além de especificar o fluxo que deve ser seguido quando a condição for verdadeira,

permite também especificar outra ação ou bloco de ação quando tal condição for falsa.

Sintaxe

//Bloco de ações

 

IF(<CONDIÇÃO>){

<bloco de ações>

}ELSE{

<bloco de ações>

}

 

//Ação  única

 

IF( <CONDIÇÃO> )

<ação única>;

ELSE

<outra ação única>;

Comandos if aninhados e if/ElSE/if

 

A estrutura IF/ELSE/IF nada mais é que uma extensão do comando IF/ELSE explicado na seção anterior e se refere a um conjunto de condições relacionadas a uma variável, onde apenas uma condição será verdadeira e consequentemente só uma ação ou bloco de ações serão executadas.

 

Sintaxe

//Bloco de ações

IF(<CONDIÇÃO 1>){
     <bloco de ações 1>
}

ELSE IF (<CONDIÇÃO 2>){
     <bloco de ações 2>
}

ELSE IF (<CONDIÇÃO 3>){
     <bloco de ações 3>
}

ELSE IF (<CONDIÇÃO 4>){
     <bloco de ações 4>
}

ELSE{
     <bloco de ações 5>
}


//Ação única
 

IF( <CONDIÇÃO 1> ) <ação única 1>;

ELSE IF (<CONDIÇÃO 2>) <ação única 2>;

ELSE IF (<CONDIÇÃO 3>) <ação única 3>;
ELSE <ação única 4>;

Já o comando IF aninhado nada mais é do que um IF dentro de outro IF. Sintaxe

IF(<CONDIÇÃO>){

     <bloco de ações>

}ELSE{

     IF (<CONDIÇÃO>){

          <bloco de ações>

     }ELSE {

          IF(CONDIÇÃO){

            <bloco de ações>

          }ELSE {

            <bloco de ações>

          }

     }

}

Operador Ternário

 

O operador ternário pode ser usado para substituir a estrutura IF/ELSE explicada na seção “Comando IF e ELSE” quando a condição possui uma ação única que se trata de uma expressão. Por exemplo, veja a sintaxe da estrutura IF/ELSE ilustrada abaixo.

 

Sintaxe

if( <CONDIÇÃO> )

    <expressão 1>;

else

    <expressão 2>;

Ela pode ser substituída pelo operador ternário conforme sintaxe abaixo.

 

Sintaxe

 

<CONDIÇÃO>?<expressão 1>:<expressão 2>

Antes do ponto de interrogação (?) tem-se a condição,

após o ponto de interrogação é colocado o valor retornado caso a condição for verdadeira

e após os dois pontos (:) o valor retornado caso a condição seja falsa.

 

Exemplo

if(var > 0)

   resultado = 1;

else

   resultado = -1;

Convertendo o exemplo acima para um operador ternário tem se a seguinte expressão:

 

Resultado = var>0?1:-1;

operador ternario
comando SWITCH
Comando SWitCH

 

O comando SWITCH é outra opção de estrutura de tomada de decisão na linguagem C. Através desse comando é possível testar o valor de uma variável em relação aos diversos casos específicos que são estabelecidos.

A principal diferença entre a estrutura do comando SWITCH e a do IF/ELSE é que o primeiro permite apenas constantes nas condições, enquanto no segundo é possível utilizar expressões. Se nenhum dos casos for verdadeiro, então o bloco default será executado, porém,

esse bloco não é obrigatório para essa estrutura.

Sintaxe

switch (var) {

case valor1:

        <bloco de ações>;

          break;

case valor1:

       <bloco de ações>;

         break;

case valor1:

      <bloco de ações>; 

        break;

.

.

.

case valorN:

      <bloco de ações>;

        break;

default:

     <bloco de ações>;

}

estruturas de repetição

Estruturas de REPETIÇÃO


​Na linguagem C existem três comandos para estruturas de repetição que podem ser usados, são eles:

  • FOR,

  • WHILE

  • DO / WHILE

que fazem parte de um segundo grupo de comandos controle de fluxo.

Comando FOR

 

O comando FOR é bastante comum em diversas linguagens de programação, ele se baseia em uma variável de controle que é inicializada, usada em uma expressão que estabelece uma condição a qual deve ser testada em cada iteração e depois éincrementada ou decrementada,

o que faz com que o loop de repetição aconteça.

Sintaxe

//Comando for executando bloco de comandos

for(<inicialização>;

      <condição>;

      <incremento>)

{

<bloco de ações>

}

//Comando for executando comando único

for(<inicialização>;

     <condição>;

     <incremento>) <ação única>;

 

 O exemplo acima mostra a sintaxe do comando, onde a inicialização da variável sempre é feita independente da condição.

Após a inicialização, a condição é testada, e caso ela seja verdadeira, ele executa determinada ação ou bloco de ações e logo após faz o incremento/decremento da variável. Depois disso, a condição é testada novamente e esse processo fica se repetindo até que a condição seja falsa. Nenhum dos elementos do comando for (inicialização, condição ou incremento) são obrigatórios.

loop infinito com o comando for

 

É possível fazer um loop infinito com o comando for, ou seja, uma estrutura de repetição que é executada para sempre sem cessar,

ou até encontrar um comando break, que o fará com que o loop seja interrompido e que a execução do fluxo normal do programa continue.

 

Sintaxe

//Comando for infinito executando bloco de comandos

 

for(<inicialização>; ; <incremento>)

{

<bloco de ações>

}

//Comando for infinito executando comando único

for(<inicialização>; ; <incremento>)<ação única>;

for( ; ; )<ação única>;

comando WHILE

Comando WHILE

 

A segunda forma que será abordada para executar um laço de repetição é através do comando while. Ele também permite que uma ação ou bloco de ação sejam executados repetitivamente, enquanto uma determinada condição for verdadeira.

 

Sintaxe

//Comando while executando bloco de comandos

 

While( <condição> ){

<bloco de ações>

}

 

//Comando while executando comando único

 

While( <condição> ) <ação única>;

loop infinito com o comando WHILE

 

Assim como o comando for, é possível fazer um loop infinito com o comando while.

Para isso, basta colocar uma condição eternamente verdadeira como mostrado abaixo.

//Comando while infinito executando bloco de comandos

while(1){

<bloco de ações>

}

 

//Comando while infinito executando comando único

while(1) <ação única>;

Para interrompê-lo, basta que ele encontre um comando break da mesma forma como citado no comando for.

comando DO .. WHILE
Comando DO-WHILE

 

A terceira opção de estrutura de repetição que será abordada é o comando DO-WHILE.

A grande diferença dele em relação ao comando WHILE, é que ele sempre executará o comando pelo menos uma vez.

 

Sintaxe

do{

<bloco de ações>;

}

while(<condição>);

Programa exemplificando o uso do comando do-while. O programa consiste em um menu, onde o usuário escolhe uma opção entre as opções “Adicionar”, “Alterar”, “Excluir” e “Sair”. Cada uma das opções possui um número    ao qual se refere. Caso o usuário escolha um número que não exista no menu, uma mensagem informando que a opção é inválida é mostrada na tela. Enquanto o usuário escolhe uma opção diferente de 0 (“Sair”), o menu é mostrado novamente até que a opção “Sair” seja escolhida.

#include <stdio.h>
  int main()
 {
     int opcao;
     puts("** MENU **");
     puts("Escolha uma opcao: ");
     
     do
    {
         puts("1 - Adicionar");
         puts("2 - Alterar");
         puts("3 - Excluir");
         puts("0 - Sair");
         
         scanf("%d", &opcao);
         
         switch (opcao)
         {
             case 1:
                 printf("\n Voce escolheu a opcao Adicionar.\n\n");
                 break;
             case 2:
                 printf("\n Voce escolheu a opcao Alterar.\n\n");
                 break;
             case 3:
                 printf("\n Voce escolheu a opcao Excluir.\n\n");
                 break;
             case 0:
                 printf("\n Voce escolheu a opcao Sair.\n\n");
                 break;
             default:
                 printf("\n Opcao INVALIDA.\n\n");
             
         }
    }while (opcao!=0);
    
    return 0;
}

BREAK e CONTINUE
Comandos BREAK e CONTINUE
Comando BREAK

 

O comando break que já foi citado anteriormente é usado para interrupção de um comando,

como por exemplo, o comando switch, ou para interrupção de um loop de repetição.

Uma vez que esse comando é encontrado dentro dessas estruturas, a execução do bloco ou loop é interrompida

e o programa continua a execução a partir da primeira linha após o final do bloco ou loop que foi interrompido.

Exemplo

 

 

for(int i = 0;;i++){

printf(“%d”, i);

if(i>10)break;

}

 

Comando CONTINUE

 

O comando CONTINUE é usado apenas dentro de estruturas de repetição.

Quando esse comando é encontrado dentro de um loop, ele interrompe a iteração corrente e pula para a próxima iteração.

A figura 53 mostra o mesmo exemplo da seção “Comando BREAK” que explica o comando do-while,

usando agora o comando continue ao invés do default do comando switch para verificar se a opção digitada pelo usuário é uma opção válida.

         
         puts("1 - Adicionar");
         puts("2 - Alterar");
         puts("3 - Excluir");
         puts("0 - Sair");
         
         scanf("%d", &opcao);
         
// inserção opcional do do comando CONTINUE
         
         if(opcao >3){
             printf("\n Opcao invalida.\n\n");
             continue;
         }
     
// inserção opcional do do comando CONTINUE

             
         
         switch (opcao)

comando GO TO
Comando GO TO

 

O GOTO é um comando de salto incondicional. Quando ele é encontrado, o programa faz um salto para outro ponto do programa que é especificado através de chamados rótulos. Esse rótulo consiste em nada mais que uma marca dentro do código que é determinada por um nome qualquer.

Sintaxe

<rótulo>:

...

<código>

...

goto <rótulo>;

...

<código>

...

O quadro acima ilustra a estrutura de sintaxe para o uso do GOTO. Para que o salto funcione, tanto o comando quanto o rótulo precisam estar dentro da mesma função. O uso desse comando não é considerado uma boa prática e deve ser evitado, pois o abuso da sua utilização pode tornar o código bastante confuso e difícil de se entender. Esse comando não é necessário e pode facilmente ser substituído por outros comandos de estrutura de controle de fluxo, portanto, se você optar por usá-lo, tenha bastante cuidado e moderação.

int main()
 {
     int opcao;
     puts("** MENU **");
     puts("Escolha uma opcao: ");
     
     do
    {

     REPETIR:
         puts("1 - Adicionar");
         puts("2 - Alterar");
         puts("3 - Excluir");
         puts("0 - Sair");
         
         scanf("%d", &opcao);
         
// inserção do comando GO TO
         
         if(opcao >3){
             printf("\n Opcao invalida.\n\n");

             go to REPETIR;
         }

© 2019 - 2024 by FMK. Updated Oct 2024.  Proudly created with Wix.com

bottom of page