Progamacion

Solo disponible en BuenasTareas
  • Páginas : 28 (6969 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de marzo de 2011
Leer documento completo
Vista previa del texto
http://www.zator.com/Cpp/index.htm
4.10.1  Sentencias de etiqueta
§1  Sinopsis
Recordemos ( 1.2.1) que en C++ las sentencias pueden estar provistas de un identificador o etiqueta que sirve para identificarlas como destino de algunas sentencias de salto.
Las sentencias C++ pueden ser etiquetadas de dos formas:
a.  Mediante una etiqueta directa:
etiqueta-identificativa:
b.  Las sentenciascase y default (que se utilizan en conjunción con switch) en la forma:
case expresion-constante : sentencia
default : sentencia
§2  Etiqueta directa
Una etiqueta ("Label") es un identificador seguido de dos puntos ( : ). Sigue las mismas reglas que los identificadores del resto de entidades del programa ( 3.2.2) y su ámbito es el de la función en que ha sido definida. Sirve de destino para lasentencia goto ( 4.10.4) de salto incondicional.
Ejemplo
Destino:        // esta es la etiqueta
;
...
goto Fin;       // Ok la etiqueta estaría más adelante
...
goto Destino;   // salta a la etiqueta
§3  case
La sentencia case se utiliza en conjunción con switch para determinar en que sentencia debe continuar la ejecución del programa de entre una serie de puntos posibles. Se trata portanto de una sentencia de salto condicionado.
§3.1  Sintaxis
switch ( <variable switch> ){
  case <expresion constante> : <sentencia>; [break;]
    ...
  default : <sentencia>;
}
§3.2  Descripción
  <expresion constante> debe evaluarse a un int y ser un valor único dentro de los posibles case del bloque switch (no deben existir valores duplicados).
Las diversas<expresion constante> del bucle son evaluadas, y sus valores comparados con el de la <variable switch>. Si no existe ninguna concordancia la ejecución sigue en la sentencia default. En cambio, si se encuentra una coincidencia entre ambas, se ejecuta la <sentencia> correspondiente y la ejecución continúa en este punto. Por esta razón, si no se desea que se ejecuten el resto de lassentencias case, a continuación de la que propicia la concordancia, deben incluirse instrucciones break ( 4.10.4) para saltar al final del bloque.
§4  default
La sentencia default se utiliza en los bloques switch junto con los case. Si no existe concordancia de la <variable switch> con ninguno de los valores case, se ejecuta la sentencia por defecto, señalada por default.
§4.1  Sintaxisswitch ( <variable switch> ){
  case <expresion> : <sentencia>; [break;]
    .
    .
    .
  default : <sentencia>;
}
§4.2  Descripción
Los valores case y default pueden aparecer en cualquier orden, aunque lo usual es colocar default al final. Ver ejemplo .
La sentencia default es opcional dentro del bloque switch. Si no existe concordancia con ningún case y noexiste sentencia default, entonces la ejecución continúa en la siguiente sentencia después del bloque switch. Es decir, no se ejecuta ninguna sentencia del mismo.
§5  Ejemplo:
En este código se muestra el uso de las palabras reservadas break, case, default y switch
#include <conio.h>
#include <iostream>
using namespace std;
 
int main(void) {           // ===================
  int ch;
   cout << "Presione a, b, O c. Cualquier otra termina el programa" << endl
   for ( /* BUCLE INFINITO */; ((ch = getch()) != EOF); )
      switch (ch) {
         case 'a' :        // La selección 'a' tiene su propio caso
            cout << "Seleccionado " << 'a' << endl;
            break;
         case 'b' :        // Es lo mismo seleccionar 'b' o 'c'         case 'c' :
            cout << "Seleccionado 'b' o 'c'" << endl;
            break;
         default :
            cout << "SELECCION NO VALIDA!  Adios..." << endl;
            return(-1);
      }
   return(0);
}

Comentario
El bloque switch funciona como una sola sentencia para el bucle exterior for. Cada vez que se pulsa una tecla, es el bucle...
tracking img