Programación Orientada Objetos Estructuras de control if, If else, switch Estructuras de control Las estructuras condicionales controlan si una sentencia o bloque de sentencias se ejecutan, en función del cumplimiento o no de una condición o expresión lógica. C++ tiene dos estructuras de control para la selección, if y switch. Estructura de control if Esta instrucción hace que se ejecuten unas sentencias u otras dependiendo del valor que toma una condición. La instrucción if puede ser simple o doble: Alternativa simple: If (condicion) instrucción1; Si la condición es verdadera se ejecuta la instrucción. Cuando solo una instrucción acompaña a la condición no es necesario las llaves Si la condición es verdadera se ejecutan todas las instrucciones que están entre llaves if (condicion) { instrucción 1; instrucción 2; instrucción 3; } Estructura de control if Alternativa doble: if (condicion) instrucción1; else instrucción2; Si la condición es verdadera se ejecutan las instrucciones 1 y 2, de lo contrario se ejecuta la instrucción 3 y la 4 if (condicion) { instrucción 1; instrucción 2; } else { instrucción 3; instrucción 4; } Estructura de control if Las instrucciones if-else se pueden anidar obteniéndose una estructura condicional múltiple: if(condicion1) instrucción1; else if(condicion2) instrucción2; else if(condicion3) instrucción3; else if(condicion4) instruccion4; else instrucción5; instrucción 6; instrucción 7; ...... Estructura de control if Ejemplo : Según el siguiente bloque, ¿qué pasaría con la variable x?. int x = 0; if ( a > b ) { x = 1; } x = x + 3; Si (a > b) entonces a la variable x se le asigna 1 y finalmente en x quedará el valor 4. Si a no es mayor que b (menor o igual que b) en x quedará el valor 3 Estructuras de control ifs anidados if ( a > b ) { if ( x == 2) { y = 3; } } Estructuras de control ifs anidados Ejemplo: Cuando se anidan instrucciones if-else, cada else aplica al if inmediatamente anterior if ( a > b ) if ( x == 2) y = 3; else else y = 5; y = 8; Ejercicio 1 Implementar un programa que maneja la información de una persona: el nombre y la edad. Se debe implementar un método que clasifique a una persona según su edad. Si la edad es mayor que 1 y menor o igual 10 se clasifica como niño. Si la edad es mayor que 10 y menor que 18 se clasifica como adolescente. Si la edad es mayor o igual a 18 y menor que 60 se clasifica como adulto. Si es mayor de 60 años se clasifica como de la tercera edad. Estructura de control switch La sentencia switch selecciona una de entre múltiples alternativas. La forma general de esta expresión es la siguiente: switch (expresión) { case constante1: instrucciones; break; case constante 2: instrucciones; break; ··· default: instrucciones; } Estructura switch En una instrucción switch, expresión debe ser una expresión con un valor entero, y constante1, constante2, ..., deben ser constantes enteras, constantes de tipo carácter o una expresión constante de valor entero. Expresión también puede ser de tipo char, ya que los caracteres individuales tienen valores enteros. Dentro de un case puede aparecer una sola instrucción o un bloque de instrucciones. Estructura switch instrucción switch evalúa la expresión entre paréntesis y compara su valor con las constantes de cada case. Se ejecutarán las instrucciones de aquel case cuya constante coincida con el valor de la expresión, y continúa hasta el final del bloque o hasta una instrucción que transfiera el control fuera del bloque del switch (una instrucción break, o return). Si no existe una constante igual al valor de la expresión, entonces se ejecutan las sentencias que están a continuación de default si existe (no es obligatorio que exista, y no tiene porqué ponerse siempre al final). Ejercicio 2 Implementar un programa que maneje la información de un Empleado y contenga un método para calcular la comisión en las ventas, según la categoría del empleado: •Si es categoría 1, se gama el 5% de comisión sobre las ventas. •Si es categoría 2, se gana 7% de comisión sobre las ventas •Si es categoría 3, se gana 15% de comisión sobre las ventas •Si es categoría 4, se gana 20% de comisión sobre las ventas •Si es categoría 5, se gana 25% de comisión sobre las ventas •Si es categoría 6, se gana el 30% de comisión sobre las ventas. Ejercicio 2 Implementar otro método que dada una calificación para el empleado, muestre la calificación en palabras, así: •Si es A o a, la calificación es Aceptable •Si es B o b; la calificación es Buena •Si es E o e, la calificación es Excelente. La alternativa ? La alternativa ?: es una instrucción que se utiliza para escribir if – else de otra forma. Por ejemplo: if ( a == 0 ) { x = 1; } else { x = 2; } x = (a == 0) ? 1 : 2;