Sentencias De Selección Sentencias De Selección
Enviado por joaquinmelendezc • 9 de Septiembre de 2012 • 717 Palabras (3 Páginas) • 357 Visitas
Las sentencias de selección, también llamadas de control de flujo, permiten decidir entre distintos cursos de acción en función de ciertos valores. En C++ existen tres tipos de estas sentencias de selección:
• if...else .
• else if .
• switch .
Recuerde que de no ser por estas sentencias, el flujo de ejecución del programa estaría siempre constreñido a la ejecución de sus sentencias en el orden en que están colocadas en el fuente.
§2 if … else
En su forma abreviada, cuando no existe la cláusula else, esta sentencia permite escoger entre ejecutar o no una sentencia, en función del resultado de una expresión lógica. En su forma ampliada, cuando la cláusula else está presente, permite escoger entre dos opciones alternativas.
§2.1 Sintaxis
if ( <condición> ) <sentencia1>;
[ else <sentencia2>; ]
§2.2 Descripción
<condición> debe ser una expresión relacional ( 4.9.12) que devuelve un valor lógico, es decir, un bool ( 3.2.1b), y estar obligatoriamente entre paréntesis. Pueden declararse variables dentro de la <condición>. Por ejemplo, la siguiente es una sintaxis válida:
if (int val = func(arg))
val = z ;
else val = y;
El ámbito de la variable val incluye toda la sentencia if, incluyendo, en su caso, el bloque <sentencia2> de else. La cláusula else es opcional, pero no puede haber sentencias entre el if y else. Recuerde las precauciones indicadas respecto de las expresiones relacionales ( 4.9.12), ya que son motivo frecuente de error en este tipo de sentencias.
<sentencia1>. Es una sentencia o bloque de código que se ejecuta si <condicion> se evalúa como cierto (true != 0).
<sentencia2> es una sentencia o bloque de código que se ejecuta si existe un else y <condicion> resulta falso (false == 0)
Puesto que el if simplemente chequea el valor resultante de <condicion> (igual o desigual a cero), las dos expresiones siguientes son equivalentes:
if ( expresion ) <sentencia> ;
if ( expresion !=0 ) <sentencia> ;
La forma más general es:
if (<condicion>) {
<sentencia1>;
}
else {
<sentencia2>;
}
§2.3 Ejemplos
Uno sencillo:
if (salida == 'S') break;
Otro ejemplo:
if (a > b)
z = a;
else
z = b;
Se podría haber escrito de forma más comprimida:
if (a > b) z = a;
else z = b;
También:
a > b ? z = a : z = b ;
o mejor aún:
z = (a > b ? a : b);
Otro ejemplo:
if (int val = func(count)) { /* sentencias */ }
else { // otra vía de acción
...