![]()  | 
      
      Aula 7: Selecção/Ramificação I (if ... , if ... else ...) | 
      
![]()  | 
      Até agora, todas as instruções que se
colocaram
num programa foram executadas. Mais ainda, elas foram executadas
exactamente
na ordem em que foram colocadas. A primeira linha do programa foi
executada
primeiro, depois a segunda, depois a terceira, e por aí fora.
Nem
sempre é assim. Com a ramificação (um ramo
faz parte de uma árvore) podemos controlar o fluxo de um
programa. 
      ![]() Negative numbers are not allowed! Obviamente, nem sempre queremos que esta mensagem surja no écran; no caso do utilizador introduzir um número positivo, queremos que seja calculada a sua raíz quadrada e que o resultado apareça no écran: The square-root of 5 is 2.23607 É preciso ter uma forma de verificar o número e dependendo do resultado, executar partes do programa.  | 
    
A maneira mais simples de ter o controlo sobre as
instruções
que serão executadas é utilizando a
instrução
if ... A sintaxe completa da instrução é
      
 Em condição
iremos
colocar a nossa condição e em instrução
colocamos a(s) nossa(s) instrução(ões) que
serão
executadas se e só se a condição for verdadeira.
       
  | 
      ![]()  | 
    
A execução normal do programa irá prosseguir
após
o bloco de instruções. No exemplo seguinte, a instrução3
e a instrução4 serão executadas
independentemente
da condição (a = b).
 
|   if (a == b) 
       { instrução1; instrução2; } instrução3; instrução4;  | 
      
      
  | 
    
De notar que a analogia com a ramificação das
árvores
termina aqui. Numa árvore, os ramos nunca se voltam a encontrar
novamente; uma vez num ramo, não é possível voltar
ao tronco principal.
Se também se quiser que o programa faça coisas
no caso
da condição não ser verdadeira deve-se utilizar a
instrução if ... else. A forma geral
desta
instrução é
      
 exemplo:
       
  | 
      ![]()  | 
    
#include <stdio.h>
#include <math.h>
main()
{
   double x;
   double root;
  printf("Give a number");
  scanf("%f", &x);
  if (x<0)
    printf("Negative numbers
are not allowed!\n");
  else
    {
      root = sqrt(x);
      printf("The
square-root of %0.4f is %0.4f\n", x, root);
    }
  printf("Have a nice day\n");
}
Correndo o programa; dois exemplos:
 
|  Give a number
       3.68 The square-root of 3.6800 is 1.9183 Have a nice day  | 
       Give a number
       -3.68 Negative numbers are not allowed! Have a nice day  | 
    
