Subsecções

10 A sentença break

O break faz com que todas as sentenças que o seguem dentro da mesma sentença switch sejam ignorados. Ou seja, colocando a sentença break no final de uma sentença case faz com que as sentenças que seguem os cases subsequentes não sejam executadas. Em geral, é este o comportamento desejado quando se usa o switch, e cases sem o break no final são de pouca utilidade. Portanto, o uso de sentenças case sem o break devem ser evitados e quando utilizados devem ser comentados ao lado com algo como /* continua proxima sentenca - sem break */.

Com a sentença break o diagrama de fluxo fica:

\includegraphics[scale=0.85]{break}

Note a similaridade com o diagrama da sentença else-if e a diferença com o diagrama da sentença switch acima.

O próximo programa tem a mesma função de calculadora do programa anterior, porém utilizando a sentença switch.

Exemplo 11:

#include <stdio.h>

main(void)
{
  float num1, num2;
  char op;
  
  printf("Entre com numero operador numero:\n");
  scanf("%f %c %f", &num1, &op, &num2);
  
  switch (op) {
  case '+':
    printf(" = %.2f", num1 + num2);
    break;
  case '-':
    printf(" = %.2f", num1 - num2);
    break;
  case '*':
    printf(" = %.2f", num1 * num2);
    break;
  case '/':
    printf(" = %.2f", num1 / num2);
    break;
  default:
    printf(" Operador invalido.");
    break;
  }
  printf("\n");
}

Como mencionado anteriormente, é possível não colocar nenhuma sentença seguindo um case. Isso é útil quando diversas sentenças case (diversas constantes) têm a mesma ação.

Por exemplo, podemos modificar o programa acima para aceitar x e X para multiplicação e \ para divisão. O programa fica então:

#include <stdio.h>

main(void)
{
  float num1, num2;
  char op;
  
  printf("Entre com numero operador numero:\n");
  scanf("%f %c %f", &num1, &op, &num2);
  
  switch (op) {
  case '+':
    printf(" = %.2f", num1 + num2);
    break;
  case '-':
    printf(" = %.2f", num1 - num2);
    break;
  case '*':
  case 'x':
  case 'X':
    printf(" = %.2f", num1 * num2);
    break;
  case '/':
  case '\\':
    printf(" = %.2f", num1 / num2);
    break;
  default:
    printf(" Operador invalido.");
    break;
  }
  printf("\n");
}

Exercício 2:

Ler mes e ano e imprimir o numero de dias do mes no ano digitado.

/usr/local/lib/tex/inputs///Programas/Exercicio_04-2.c

Armando Luiz Nicolini Delgado
2013-10-21