SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Representación de Datos y Aplicaciones
                            Representació




                  Tema 6
          Estructuras de control (I)


                                     Natividad Martínez Madrid
                                               Martí
                                          nati@it.uc3m.es




                               Objetivos del tema 6

● Aprender a diseñar algoritmos sencillos para la
  solución de problemas
● Aprender a representar de forma abstracta los
  algoritmos en forma de organigrama
● Conocer las estructuras de control de tipo
  selección proporcionadas por Java y saber
  aplicarlas correctamente
● Ser capaces de elegir la estructura de selección
  adecuada a cada situación


Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones      © Natividad Martínez Madrid   2




                                                                              1
Contenido del tema 6

● Conceptos básicos del flujo de control
● Secuenciación de sentencias
● Sentencia simple y sentencia compuesta
● Estructuras de selección simple y múltiple




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   3




     Conceptos básicos del flujo de control

● Dentro del cuerpo de los métodos se ejecutan
  sentencias (instrucciones) que determinan el
  comportamiento del programa
● Dichas sentencias se ejecutan en secuencia
       ― Cada sentencia termina con un punto y coma
● Las sentencias que hemos visto hasta ahora
  eran sencillas (asignación o return)




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   4




                                                                           2
Secuenciación de sentencias



                                         sentencia1



                                         sentencia2



                                         sentencia3




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid           5




                             Bloque de sentencias

● Un bloque de sentencias (o sentencia
  compuesta) es un número de sentencias Java
  simples rodeadas por llaves
       ― Los bloques definen un ámbito de variables
       ― Los bloques pueden anidarse

       void metodo() {                         void metodo() {
         int n;                                  int n;
         ...                                     ...
         { int k;                                { int k;
           ...                                     int n;              Error
         }                                         ...
       ...                                       }
       }                                       ...
                                               }

Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid           6




                                                                                   3
Sentencias de control

● Los lenguajes de programación proporcionan
  sentencias de control que permiten
       ― Ejecución opcional de un bloque de sentencias
       ― Ejecución repetida de un bloque de sentencias
● De esta forma, se pueden implementar
  algoritmos para calcular los valores resultantes




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   7




                       Estructuras de selección

● Las estructuras de selección permiten, en
  función del valor lógico de un selector, ejecutar
  un bloque de sentencias u otro
● Tipos de sentencias de selección:
       ― Sentencia if / if-else
       ― Sentencia switch




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   8




                                                                           4
Sentencia if
● La sentencia if es la sentencia básica de
  selección
       if (condición) {
          bloque de sentencias
       }
● donde
       ― condición es una expresión booleana
       ― sentencias representa un bloque de sentencias o
         una sentencia única
                   Si es una sentencia única, se pueden quitar las llaves


Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones         © Natividad Martínez Madrid   9




                   Diagrama de la sentencia if
Este tipo de diagramas se llaman organigramas y
representan el flujo de control de una parte del programa



                                         condición                   false


                                              true
                                         sentencias




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones         © Natividad Martínez Madrid   10




                                                                                  5
Significado de la sentencia if

● Si la condición es cierta (si el valor de la
  expresión es true) se ejecutará el bloque de
  sentencias asociado
● Si la condición es falsa, dicho bloque de
  sentencias no se ejecutará




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   11




                             Ejemplo: Sentencia if

       public class Alumno {
         String nombre;
         int año;
         String grupo;

           public Alumno (String nombre, int año) throws Exception {
              if (nombre == null)
                    throw new Exception (“Nombre vacío”);
              if (año < 0)
                     throw new Exception (“Año incorrecto”);
              this.nombre = nombre;
              this.año = año;
            }
       }


      ¿Cuál sería el organigrama de este constructor?
Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   12




                                                                            6
Sentencia if - else
● Opcionalmente, se puede añadir una parte else
  a la sentencia if
● Indica otro bloque de sentencia a ejecutar si la
  condición es falsa
       if (condición) {
          sentencias1
       } else {
          sentencias2
       }



Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                 13




        Diagrama de la sentencia if - else



                    false                                              true
                                         condición

    sentencias2                                                        sentencias1




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                 14




                                                                                          7
Ejemplo: Sentencia if - else
       public class IfElse {

            public void pruebaIfElse (int a, int b)                         {
              if (a>b) {
                System.out.println(“El número mayor                         es “ + a);
              } else {
                System.out.println(“El número mayor                         es “ + b);
              }
            }
            public static void main (String[] args)                         {
              IfElse ie = new IfElse();
              ie.pruebaIfElse(3,7);
              ie.pruebaIfElse(7,6);
            }
       }


Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones        © Natividad Martínez Madrid                15




                                         Ejercicio: if-else

● Escribid un método:
             boolean aprueba (float nota)
     que, dada una nota, determine si el examen está
     aprobado o no
       ― Pintad primero el organigrama
       ― Después codificad el método




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones        © Natividad Martínez Madrid                16




                                                                                              8
Sentencia if anidada
● Las sentencias if se pueden anidar
       ― También las otras sentencias de control que veremos
         a continuación
● Dentro del bloque de sentencias del if (o de los
  bloques de if-else) puede encontrarse otra
  sentencia if
● Importante
       ― A qué if corresponde cada else
       ― Cuál es el estado del programa en cada punto
       ― ¡Una buena indentación!

Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                    17




              Ejemplo: Sentencia if anidada
       if (i == 10) {
         if (j < 20) a = b;
         if (k > 100) c = d;
         else a = c;
       }                                                      ¿A qué ifs pertenencen?
       else a = d;




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid                    18




                                                                                             9
Sentencia if-else-if
● Habitual cuando hay más de una condición
       ― Basada en los if anidados, se anidan en la parte del else
       if (condición1) {
          sentencias1
       } else if (condición2) {
          sentencias2
       } else if (condición3) {
          sentencias3
       }
       ...
       else {
          sentenciasElse
       }


Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones           © Natividad Martínez Madrid   19




      Diagrama de la sentencia if-else-if

                                                      true
                                 condición1

                                         false               sentencias1
                                                       true
                                 condición2

                                         false               sentencias2

                                 condición3           true

                                         false
                             sentenciasElse                  sentencias3




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones           © Natividad Martínez Madrid   20




                                                                                    10
Ejemplo: Sentencias if-else-if
             class Meses {
               private int mes;

                  public String dameEstacion() {
                    String estacion
                    if (mes == 12 || mes == 1 || mes == 2)
                      estacion = “Invierno”;
                    else if (mes == 3 || mes == 4 || mes == 5)
                      estacion = “Primavera”;
                    else if (mes == 6 || mes == 7 || mes == 8)
                      estacion = “Verano”;
                    else if (mes == 9 || mes == 10 || mes == 11)
                      estacion = “Otoño”;
                    return estacion;
                  }
                  ...
             }
● ¿Cómo se puede mejorar el método?

Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   21




                 Ejercicio: Sentencia if-else-if
● Se desea escribir un método en la clase Ciudadano que
  calcule si una persona cumple las condiciones para ser
  residente en España. Suponed que, para ser residente,
  se debe cumplir al menos una de las siguientes
  condiciones:
       ― Ser de nacionalidad española
       ― Ser estudiante matriculado en algún estudio oficial
       ― Ser menor de 18 años y que al menos uno de los padres sea
         residente
       ― Ser ciudadano de la EU y tener trabajo o que el cónyuge sea
         residente
       ― Ser extranjero y que el cónyuge sea residente
● Podéis diseñar los atributos de la clase Ciudadano
  necesarios

Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   22




                                                                            11
Sentencia switch
● Estructura de selección múltiple
● Selección de bloques de sentencias entre múltiples casos
       ― Dependiendo del valor de una expresión entera
             switch (expresion) {
                case valor1:
                  sentencias;
                  break;
                case valor2:
                case valor3:
                  sentencias;
                  break;
                …
                default:
                  sentencias;
                  break;
             }




Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   23




                              Caraterísticas switch

● Puede haber default o no
● Si un bloque contiene un break, se continua con
  la sentencia siguiente al switch
● Si no, continúa comprobando los siguientes
  valores, o va al default
● Los valores tienen que ser una expresión
  constante
       ― Conocida en tiempo de ejecución



Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   24




                                                                            12
Ejemplo sentencia switch
     public class DiasDelMes
        public static void main (String[] args) {
           int dias;
           int mes; = 8;
           switch (mes) {
              case 4:
              case 6:
              case 8:
              case 10:
                 dias = 30;
                 break;
              case 2:
                 dias = 28;
                 break;
              default;
                 días = 31;
                 break;
           }
           System.out.println(“El mes “ + mes +
                              “ tiene “ + dias + “ días.”);
        }
     }

Tema 6: Estructuras de control (I)
Representación de Datos y Aplicaciones   © Natividad Martínez Madrid   25




                                                                            13

Más contenido relacionado

Similar a Estructuras de control Java: if, if-else y if-else-if

Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control iiWhaleejaa Wha
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control iiWhaleejaa Wha
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control iiWhaleejaa Wha
 
U7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOSU7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOSLuiS YmAY
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...Jornadas SISTEDES 2012 {JISBD; PROLE; JCIS}
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..siticfje
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc X
 
Tema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptxTema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptxJaime Sayago Heredia
 
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB 4.3 N-capas 4.4 Pruebas Un...
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB  4.3 N-capas 4.4 Pruebas Un...16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB  4.3 N-capas 4.4 Pruebas Un...
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB 4.3 N-capas 4.4 Pruebas Un...Luis Fernando Aguas Bucheli
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcialmtemarialuisa
 
Estructuras JAVA
Estructuras JAVAEstructuras JAVA
Estructuras JAVAulvier
 
Estructuras secuenciales, selectivas e iterativas 01
Estructuras secuenciales, selectivas e iterativas 01Estructuras secuenciales, selectivas e iterativas 01
Estructuras secuenciales, selectivas e iterativas 01mariazeballos
 

Similar a Estructuras de control Java: if, if-else y if-else-if (20)

Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
 
4
44
4
 
U7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOSU7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOS
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...
Enfoque dirigido por modelos para probar Sistemas de Información con Bases de...
 
01.introduccion metricauml
01.introduccion metricauml01.introduccion metricauml
01.introduccion metricauml
 
unidad 1 simulacion completa
unidad 1 simulacion completaunidad 1 simulacion completa
unidad 1 simulacion completa
 
aplicacion_de_la_investigacion_de_operaciones
aplicacion_de_la_investigacion_de_operacionesaplicacion_de_la_investigacion_de_operaciones
aplicacion_de_la_investigacion_de_operaciones
 
Iniciacion a-la-programacion-ii
Iniciacion a-la-programacion-iiIniciacion a-la-programacion-ii
Iniciacion a-la-programacion-ii
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..
 
Ana presentacion
Ana presentacionAna presentacion
Ana presentacion
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unit
 
Tema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptxTema1Instrucciones-DeclaracionAsignacion.pptx
Tema1Instrucciones-DeclaracionAsignacion.pptx
 
Adt
AdtAdt
Adt
 
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB 4.3 N-capas 4.4 Pruebas Un...
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB  4.3 N-capas 4.4 Pruebas Un...16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB  4.3 N-capas 4.4 Pruebas Un...
16 UNIDAD: 4. INTRODUCCION A LAS ARQUITECTURASWEB 4.3 N-capas 4.4 Pruebas Un...
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcial
 
Estructuras JAVA
Estructuras JAVAEstructuras JAVA
Estructuras JAVA
 
Estructuras secuenciales, selectivas e iterativas 01
Estructuras secuenciales, selectivas e iterativas 01Estructuras secuenciales, selectivas e iterativas 01
Estructuras secuenciales, selectivas e iterativas 01
 

Más de Whaleejaa Wha (20)

Windows 7
Windows 7Windows 7
Windows 7
 
Windows 7 avanzado
Windows 7 avanzadoWindows 7 avanzado
Windows 7 avanzado
 
Virtualizacion con vm ware
Virtualizacion con vm wareVirtualizacion con vm ware
Virtualizacion con vm ware
 
Unity
UnityUnity
Unity
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Tecnico windows
Tecnico windowsTecnico windows
Tecnico windows
 
Tecnico hardware desde cero
Tecnico hardware desde ceroTecnico hardware desde cero
Tecnico hardware desde cero
 
Soluciones pc desde cero
Soluciones pc desde ceroSoluciones pc desde cero
Soluciones pc desde cero
 
Silverlight
SilverlightSilverlight
Silverlight
 
Servicio tecnico notebooks
Servicio tecnico notebooksServicio tecnico notebooks
Servicio tecnico notebooks
 
Seguridad pc desde cero
Seguridad pc desde ceroSeguridad pc desde cero
Seguridad pc desde cero
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Routers y switches cisco
Routers y switches ciscoRouters y switches cisco
Routers y switches cisco
 
Robotica
RoboticaRobotica
Robotica
 
Redes wireless
Redes wirelessRedes wireless
Redes wireless
 
Redes wifi
Redes wifiRedes wifi
Redes wifi
 
Proteus vsm
Proteus vsmProteus vsm
Proteus vsm
 
Produccion musical
Produccion musicalProduccion musical
Produccion musical
 
Php avanzado
Php avanzadoPhp avanzado
Php avanzado
 
Overclocking
OverclockingOverclocking
Overclocking
 

Estructuras de control Java: if, if-else y if-else-if

  • 1. Representación de Datos y Aplicaciones Representació Tema 6 Estructuras de control (I) Natividad Martínez Madrid Martí nati@it.uc3m.es Objetivos del tema 6 ● Aprender a diseñar algoritmos sencillos para la solución de problemas ● Aprender a representar de forma abstracta los algoritmos en forma de organigrama ● Conocer las estructuras de control de tipo selección proporcionadas por Java y saber aplicarlas correctamente ● Ser capaces de elegir la estructura de selección adecuada a cada situación Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 2 1
  • 2. Contenido del tema 6 ● Conceptos básicos del flujo de control ● Secuenciación de sentencias ● Sentencia simple y sentencia compuesta ● Estructuras de selección simple y múltiple Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 3 Conceptos básicos del flujo de control ● Dentro del cuerpo de los métodos se ejecutan sentencias (instrucciones) que determinan el comportamiento del programa ● Dichas sentencias se ejecutan en secuencia ― Cada sentencia termina con un punto y coma ● Las sentencias que hemos visto hasta ahora eran sencillas (asignación o return) Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 4 2
  • 3. Secuenciación de sentencias sentencia1 sentencia2 sentencia3 Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 5 Bloque de sentencias ● Un bloque de sentencias (o sentencia compuesta) es un número de sentencias Java simples rodeadas por llaves ― Los bloques definen un ámbito de variables ― Los bloques pueden anidarse void metodo() { void metodo() { int n; int n; ... ... { int k; { int k; ... int n; Error } ... ... } } ... } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 6 3
  • 4. Sentencias de control ● Los lenguajes de programación proporcionan sentencias de control que permiten ― Ejecución opcional de un bloque de sentencias ― Ejecución repetida de un bloque de sentencias ● De esta forma, se pueden implementar algoritmos para calcular los valores resultantes Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 7 Estructuras de selección ● Las estructuras de selección permiten, en función del valor lógico de un selector, ejecutar un bloque de sentencias u otro ● Tipos de sentencias de selección: ― Sentencia if / if-else ― Sentencia switch Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 8 4
  • 5. Sentencia if ● La sentencia if es la sentencia básica de selección if (condición) { bloque de sentencias } ● donde ― condición es una expresión booleana ― sentencias representa un bloque de sentencias o una sentencia única Si es una sentencia única, se pueden quitar las llaves Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 9 Diagrama de la sentencia if Este tipo de diagramas se llaman organigramas y representan el flujo de control de una parte del programa condición false true sentencias Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 10 5
  • 6. Significado de la sentencia if ● Si la condición es cierta (si el valor de la expresión es true) se ejecutará el bloque de sentencias asociado ● Si la condición es falsa, dicho bloque de sentencias no se ejecutará Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 11 Ejemplo: Sentencia if public class Alumno { String nombre; int año; String grupo; public Alumno (String nombre, int año) throws Exception { if (nombre == null) throw new Exception (“Nombre vacío”); if (año < 0) throw new Exception (“Año incorrecto”); this.nombre = nombre; this.año = año; } } ¿Cuál sería el organigrama de este constructor? Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 12 6
  • 7. Sentencia if - else ● Opcionalmente, se puede añadir una parte else a la sentencia if ● Indica otro bloque de sentencia a ejecutar si la condición es falsa if (condición) { sentencias1 } else { sentencias2 } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 13 Diagrama de la sentencia if - else false true condición sentencias2 sentencias1 Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 14 7
  • 8. Ejemplo: Sentencia if - else public class IfElse { public void pruebaIfElse (int a, int b) { if (a>b) { System.out.println(“El número mayor es “ + a); } else { System.out.println(“El número mayor es “ + b); } } public static void main (String[] args) { IfElse ie = new IfElse(); ie.pruebaIfElse(3,7); ie.pruebaIfElse(7,6); } } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 15 Ejercicio: if-else ● Escribid un método: boolean aprueba (float nota) que, dada una nota, determine si el examen está aprobado o no ― Pintad primero el organigrama ― Después codificad el método Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 16 8
  • 9. Sentencia if anidada ● Las sentencias if se pueden anidar ― También las otras sentencias de control que veremos a continuación ● Dentro del bloque de sentencias del if (o de los bloques de if-else) puede encontrarse otra sentencia if ● Importante ― A qué if corresponde cada else ― Cuál es el estado del programa en cada punto ― ¡Una buena indentación! Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 17 Ejemplo: Sentencia if anidada if (i == 10) { if (j < 20) a = b; if (k > 100) c = d; else a = c; } ¿A qué ifs pertenencen? else a = d; Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 18 9
  • 10. Sentencia if-else-if ● Habitual cuando hay más de una condición ― Basada en los if anidados, se anidan en la parte del else if (condición1) { sentencias1 } else if (condición2) { sentencias2 } else if (condición3) { sentencias3 } ... else { sentenciasElse } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 19 Diagrama de la sentencia if-else-if true condición1 false sentencias1 true condición2 false sentencias2 condición3 true false sentenciasElse sentencias3 Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 20 10
  • 11. Ejemplo: Sentencias if-else-if class Meses { private int mes; public String dameEstacion() { String estacion if (mes == 12 || mes == 1 || mes == 2) estacion = “Invierno”; else if (mes == 3 || mes == 4 || mes == 5) estacion = “Primavera”; else if (mes == 6 || mes == 7 || mes == 8) estacion = “Verano”; else if (mes == 9 || mes == 10 || mes == 11) estacion = “Otoño”; return estacion; } ... } ● ¿Cómo se puede mejorar el método? Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 21 Ejercicio: Sentencia if-else-if ● Se desea escribir un método en la clase Ciudadano que calcule si una persona cumple las condiciones para ser residente en España. Suponed que, para ser residente, se debe cumplir al menos una de las siguientes condiciones: ― Ser de nacionalidad española ― Ser estudiante matriculado en algún estudio oficial ― Ser menor de 18 años y que al menos uno de los padres sea residente ― Ser ciudadano de la EU y tener trabajo o que el cónyuge sea residente ― Ser extranjero y que el cónyuge sea residente ● Podéis diseñar los atributos de la clase Ciudadano necesarios Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 22 11
  • 12. Sentencia switch ● Estructura de selección múltiple ● Selección de bloques de sentencias entre múltiples casos ― Dependiendo del valor de una expresión entera switch (expresion) { case valor1: sentencias; break; case valor2: case valor3: sentencias; break; … default: sentencias; break; } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 23 Caraterísticas switch ● Puede haber default o no ● Si un bloque contiene un break, se continua con la sentencia siguiente al switch ● Si no, continúa comprobando los siguientes valores, o va al default ● Los valores tienen que ser una expresión constante ― Conocida en tiempo de ejecución Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 24 12
  • 13. Ejemplo sentencia switch public class DiasDelMes public static void main (String[] args) { int dias; int mes; = 8; switch (mes) { case 4: case 6: case 8: case 10: dias = 30; break; case 2: dias = 28; break; default; días = 31; break; } System.out.println(“El mes “ + mes + “ tiene “ + dias + “ días.”); } } Tema 6: Estructuras de control (I) Representación de Datos y Aplicaciones © Natividad Martínez Madrid 25 13