Diferencia entre revisiones de «Estructuras de selección en C++»

(Página creada con '{{Definición |nombre= Estructuras de Selección en C++ |imagen= |tamaño= |concepto= Los programas C y C++ se ejecutan secuencialmente, aunque esta secuencia puede ser inte...')
(Etiqueta: no tiene enlaces internos)
 
Línea 3: Línea 3:
 
|imagen=
 
|imagen=
 
|tamaño=
 
|tamaño=
|concepto= Los programas C y [[C++]] se ejecutan secuencialmente, aunque esta secuencia puede ser interrumpida de varias maneras.  
+
|concepto=  
 +
}}
 +
 
 +
'''Los programas [[C]] y [[C++]]''' se ejecutan secuencialmente, aunque esta secuencia puede ser interrumpida de varias maneras.  
  
==Sentencia "switch==  
+
==Sentencia switch==  
  
 
Las etiquetas son la forma en que se indica al compilador en qué puntos será reanudada la ejecución de un programa cuando haya una ruptura del orden secuencial.  
 
Las etiquetas son la forma en que se indica al compilador en qué puntos será reanudada la ejecución de un programa cuando haya una ruptura del orden secuencial.  
  
Cuando se usa la sentencia "switch" el control se transfiere al punto etiquetado con el "case" cuya expresión constante coincida con el valor de la variable del "switch". A partir de ese punto todas las sentencias serán ejecutadas hasta el final del "switch", es decir hasta llegar al "}". Esto es así porque las etiquetas sólo marcan los puntos de entrada después de una ruptura de la secuencia de ejecución, pero no marcan las salidas.  
+
Cuando se usa la sentencia [[switch]] el control se transfiere al punto etiquetado con el [[case]] cuya expresión constante coincida con el valor de la variable del switch. A partir de ese punto todas las sentencias serán ejecutadas hasta el final del switch, es decir hasta llegar al "}". Esto es así porque las etiquetas sólo marcan los puntos de entrada después de una ruptura de la secuencia de ejecución, pero no marcan las salidas.  
 
Esta característica nos permite ejecutar las mismas sentencias para varias etiquetas distintas, y se puede eludir usando la sentencia de ruptura "break" al final de las sentencias incluidas en cada "case".  
 
Esta característica nos permite ejecutar las mismas sentencias para varias etiquetas distintas, y se puede eludir usando la sentencia de ruptura "break" al final de las sentencias incluidas en cada "case".  
Si no se satisface ningún "case", el control parará a la siguiente sentencia después de la etiqueta "default". Esta etiqueta es opcional y si no aparece se abandonará el "switch".  
+
Si no se satisface ningún "case", el control parará a la siguiente sentencia después de la etiqueta [[default]]. Esta etiqueta es opcional y si no aparece se abandonará el "switch".  
  
 
===Sintaxis:===
 
===Sintaxis:===
Línea 39: Línea 42:
 
En este ejemplo letra es una variable de tipo "char" y EsVocal de tipo "bool". Si el valor de entrada en el "switch" corresponde a una vocal, EsVocal saldrá con un valor verdadero, en caso contrario, saldrá con un valor falso. El ejemplo ilustra el uso del "break", si letra es 'a', se cumple el primer "case", y la ejecución continúa en la siguiente sentencia, ignorando el resto de los "case" hasta el "break".  
 
En este ejemplo letra es una variable de tipo "char" y EsVocal de tipo "bool". Si el valor de entrada en el "switch" corresponde a una vocal, EsVocal saldrá con un valor verdadero, en caso contrario, saldrá con un valor falso. El ejemplo ilustra el uso del "break", si letra es 'a', se cumple el primer "case", y la ejecución continúa en la siguiente sentencia, ignorando el resto de los "case" hasta el "break".  
  
==Fuentes==
+
==Fuente==
  
[http://c.conclase.net C con Clase]
+
*Addison Wesley - C++ Network Programming Volume I - Mastering Complexity with ACE and Patterns
 +
*Como programar en C y C++ Tomo I
 +
*[http://c.conclase.net C con Clase]
  
 
==Enlaces externos==
 
==Enlaces externos==
Línea 47: Línea 52:
 
[http://c.conclase.net C con Clase]
 
[http://c.conclase.net C con Clase]
  
==Referencias==
 
 
[http://c.conclase.net C con Clase]
 
 
==Bibliografía==
 
 
*Addison Wesley - C++ Network Programming Volume I - Mastering Complexity with ACE and Patterns
 
*Como programar en C y C++ Tomo I
 
*[http://c.conclase.net C con Clase]
 
  
 
[[Category:Herramientas_de_programación]]
 
[[Category:Herramientas_de_programación]]
}}
 

Revisión del 12:25 17 mar 2011

Estructuras de Selección en C++
Información sobre la plantilla

Los programas C y C++ se ejecutan secuencialmente, aunque esta secuencia puede ser interrumpida de varias maneras.

Sentencia switch

Las etiquetas son la forma en que se indica al compilador en qué puntos será reanudada la ejecución de un programa cuando haya una ruptura del orden secuencial.

Cuando se usa la sentencia switch el control se transfiere al punto etiquetado con el case cuya expresión constante coincida con el valor de la variable del switch. A partir de ese punto todas las sentencias serán ejecutadas hasta el final del switch, es decir hasta llegar al "}". Esto es así porque las etiquetas sólo marcan los puntos de entrada después de una ruptura de la secuencia de ejecución, pero no marcan las salidas. Esta característica nos permite ejecutar las mismas sentencias para varias etiquetas distintas, y se puede eludir usando la sentencia de ruptura "break" al final de las sentencias incluidas en cada "case". Si no se satisface ningún "case", el control parará a la siguiente sentencia después de la etiqueta default. Esta etiqueta es opcional y si no aparece se abandonará el "switch".

Sintaxis:

switch(<variable>) {

  case <expresión_constante>: [<sentencias>][break;]
  . . . 
  [default: [<sentencias>]] 

}

Ejemplo:

switch(letra) {

  case 'a': 
  case 'e': 
  case 'i': 
  case 'o': 
  case 'u': 
     EsVocal = true; 
     break; 
  default: 
     EsVocal = false; 

}

En este ejemplo letra es una variable de tipo "char" y EsVocal de tipo "bool". Si el valor de entrada en el "switch" corresponde a una vocal, EsVocal saldrá con un valor verdadero, en caso contrario, saldrá con un valor falso. El ejemplo ilustra el uso del "break", si letra es 'a', se cumple el primer "case", y la ejecución continúa en la siguiente sentencia, ignorando el resto de los "case" hasta el "break".

Fuente

  • Addison Wesley - C++ Network Programming Volume I - Mastering Complexity with ACE and Patterns
  • Como programar en C y C++ Tomo I
  • C con Clase

Enlaces externos

C con Clase