Clase #05 switch/case, Ejercicio Programación III Clase #05 switch/case, Ejercicio
switch/case Sintaxis switch (ord_val) { case val1: stmt_list; break; … case valn: default: }
Ejemplo switch char c; cin>>c; switch(c) { case ‘a’ : cout<<“a!”; break; case ‘e’ : cout<<“e!”; case ‘i’ : cout<<“i!”; case ‘o’ : cout<<“o!”; case ‘u’ : cout<<“u… El Burro eres tu!”; default: cout<<“No Vocal Minuscula”; }
Ejemplo switch char c; ¿Compilará? cin>>c; { case ‘a’ : cout<<“a!”; case ‘e’ : cout<<“e!”; case ‘i’ : cout<<“i!”; case ‘o’ : cout<<“o!”; case ‘u’ : cout<<“u… El Burro eres tu!”; default: cout<<“No Vocal Minuscula”; } ¿Compilará? Si se introduce una ‘a’, ¿Cuál será la salida?
Ejercicio Cambie el problema del Número Mágico para que se le indique al usuario qué tan cerca del número mágico (magic) se encuentra por medio de temperaturas: Caliente: Bien Cerca Tibio: Cerca Helado: Lejos Congelado: Bien Lejos
Tipos y Conversión int a = 3, b = 2; float x; x = a / b; Se le asigna 1.0 Debido a que la división es entera. int a = 3, b = 2; float x; x = a / b; // ¿Qué valor se le asigna a x? int a = 3, b = 2; float x; x = (float)a / (float)b; Esto ejecuta una conversión explícita (cast)
Conversión Existen dos tipos de conversión Operadores de Conversión Implícita: cuando el compilador puede hacer la conversión solo. Explícita: cuando hay que indicarle al compilador cómo hacer la conversión Operadores de Conversión (type)id Conversión estilo C static_cast<type>id Conversión estilo C++
Conversión Implícita El compilador la puede hacer solo Se da cuando se trata de “asignar” una variable de un tipo más pequeño a un tipo más grande: un char a un int un int a un float un float a un double un char a un double etc.
Conversión Implícita int a = 3; float x; x = a; char c = ‘A’; x = c;
Conversión Explícita Es cuando se trata de “asignar” un tipo más grande a un tipo más pequeño. Se pierde precisión Requiere de un cast explícito
Conversión Explícita int a = 3, b = 2; float x; x = (float)a / (float)b; int a = 3, b = 2; float x; x = static_cast<float>a / static_cast<float>b;