3. Instruções de Controle e de Sequência

A linguagem C, como já foi dito, apresenta características de uma linguagem estruturada. Assim sendo, possui instruções de controle de sequência, que permitem especificar a ordem pela qual são executadas as instruções de um programa. As intruções de controle de sequência são de dois tipos: condicionais (if e switch) e de ciclo (while, do/while e for).

Ter em atenção que quando se tem mais do que uma instrução (instrução composta) estas deverão ser colocadas entre chavetas, como já foi afirmado anteriormente.

Existem duas instruções que permitem alterar a sequência normal de execução dos ciclos: a instrução break e a instrução continue. A intrução break interrompe definitivamente a execução de um ciclo , enquanto que a instrução continue interrompe a execução de uma iteracção saltando para o inicio da iteracção seguinte. A instrucção break também é usada na instrução switch.

3.1 Instrução IF

Esta é a instrução mais simples para controle de sequência. O seu funcionamento é o seguinte:

Faz-se a avaliação de uma expressão, e caso ela seja verdadeira é executado um primeiro bloco contendo uma ou mais instruções, caso contrário, será executado se existir, um segundo bloco iniciado pela palavra else.

Existem duas formas de utilização:

if (expressão)
instrução;

ou

if (expressão)
instrução;
else
instrução;

Exemplo : Neste exemplo, a função idade(), verifica em que intervalo se situa uma idade i dada como argumento. No caso de i ser maior do que 70 imprime Idoso, senão, se for maior do que 30 imprime Adulto senão imprime Jovem.

  void idade(int i) /* 'void' antes do nome da função para significar que esta não retorna qualquer valor. */
  {
  if (i>70) printf (Idoso);
    else
    if (i>30) printf (Adulto);
  else
  printf (Jovem);
  }

3.2 Instrução SWITCH

Esta instrução avalia uma expressão do tipo inteiro ou caracter, e depois compara-a com constantes de tipo inteiro ou caracter, permitindo várias decisões(vias). Esta instrução usa-se normalmente em situações em que existam várias possibilidades de decisão.

Sintaxe :

  switch (expressão)
    {
    case constante1 : Instrução;
      break;
    case constante2 : Instrução;
      break;
    ...
    default : Instrução
      break;
    }

A instrução break permite sair (quebrar) do switch. Caso esta não seja incluída todas as instruções abaixo do case seriam executadas até que surgisse um break ou a chaveta que termina o switch. A instrução default é opcional e é avaliada quando nenhuma das constantes coincide com o resultado da expressão.

3.3 Ciclo WHILE

Esta instrução é usada quando se pretende que um bloco de instruções seja executado enquanto uma determinada condição for verdadeira. O teste da condição é feito no inicio de cada ciclo, sendo possível que as instruções não sejam executadas uma única vez. O ciclo while sem nenhuma condição é considerado sempre verdadeiro, dando origem a um ciclo infinito (do forever).

Sintaxe :

while (expressão)
instrução simples ou composta;

A instrução é executada enquanto a expressão é verdadeira.

3.4 Ciclo DO-WHILE

Esta construção é idêntica ao ciclo while. Enquanto que no ciclo while o teste da condição é feito no fim de cada iteracção, no do-while o teste é feito no fim. Assim, mesmo que a condição seja sempre falsa, o bloco de instruções é executado pelo menos uma vez (a primeira).

Sintaxe:

  do
    instrução simples ou composta
  while (expressão);

3.5 Ciclo FOR

A instrução for é aquela que habitualmente mais se utiliza na construção de ciclos em C. Isto deve-se ao seu poder e flexibilidade, como poderá ser observado. Identicamente ao while, a condição de teste é feita no inicio do ciclo.

Sintaxe:

  for (inicio;teste;incremento)
    instrução

Gramaticalmente, os três componentes são expressões.

A inicio correspondem expressões normalmente da inicialização da(s) variável(is) de controle do ciclo (se correspondem a mais do que uma as expressões devem ser separadas por virgula.

A teste correspondem as condições de execução de cada ciclo.

Em incremento são normalmente efectuados os incrementos das variáveis de ciclo (se forem mais do que uma as expressões deverão ser separadas por virgula).

Na primeira iteração do ciclo for é executado inicio, depois teste, em seguida se teste resultar verdadeiro é executado instrução (composto por uma ou mais instruções), e por último incremento nas restantes iteracções do for, inicio não é executado.

O ciclo for pode ser facilmente convertido num ciclo while com o seguinte aspecto:

  inicio;
  while (teste)
  {
    instrução;
    incremento;

  }

Back | Up | Forward

To front page | Pages by Nuno Nunes. |