SlideShare una empresa de Scribd logo
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

PPTX
Las estructuras de control en la programación
PPTX
PPT
Lavarse las manos
PPTX
PPT
Identificación de anuncios y titulares
PDF
PDF
Natura Una - Penteadeira
PDF
Shopping Recife - O Shopping é tendência
Las estructuras de control en la programación
Lavarse las manos
Identificación de anuncios y titulares
Natura Una - Penteadeira
Shopping Recife - O Shopping é tendência

Destacado (20)

PDF
Prova internet-pssii-2009
PPS
Construir La Pascua
PDF
Prova internet-pssii-2006
PDF
SPAUSA. Dermocosmética Portuguesa.
PPT
Governos Itamar Franco e FHC
PDF
Alimentação
PPT
Project Pinhole IBV
PPTX
Softeare libre
PPTX
L’impuls de...millora
PPTX
A CEIFA E A VINDIMA
PDF
P&G - Love banner Oral-B
PPT
Presentacion de la prueba
PDF
Vb guion informativo_dos_columnas_modelo_
PPT
Gestao conhecimento
PDF
Jn 22 05
PPTX
postales del evento de investigación 2015 ESCUELA NORMAL MARÍA AUXILIADORA SO...
PDF
Ampla - Revista da Ampla
PDF
Daqui agosto 2015
PDF
Registro estudiante perueduca
PDF
Server 2008
Prova internet-pssii-2009
Construir La Pascua
Prova internet-pssii-2006
SPAUSA. Dermocosmética Portuguesa.
Governos Itamar Franco e FHC
Alimentação
Project Pinhole IBV
Softeare libre
L’impuls de...millora
A CEIFA E A VINDIMA
P&G - Love banner Oral-B
Presentacion de la prueba
Vb guion informativo_dos_columnas_modelo_
Gestao conhecimento
Jn 22 05
postales del evento de investigación 2015 ESCUELA NORMAL MARÍA AUXILIADORA SO...
Ampla - Revista da Ampla
Daqui agosto 2015
Registro estudiante perueduca
Server 2008
Publicidad

Similar a Java (20)

PDF
Estructuras de control ii
PDF
Estructuras de control ii
PDF
Estructuras de control ii
PDF
Unidad 1: Estructuras de control y condicionales
PPTX
Open class 3_PE.pptx
PPT
Estructuras de control selectiva
PDF
Actividad de Inicio Programación
PPTX
Estructuras de control de flujo
DOCX
Estructuras
DOCX
Trabajo de computacion
PPTX
Programaciòn Estructurada
PDF
Guia_programación Comp-EstructurasControl.pdf
PPTX
Ova estructuras de control JAVA
PPTX
4. Elementos de programación estructurada.pptx
PDF
Fpr0407 control
PDF
Sentencias If y Else.pdf
PPTX
Intrucciones de control yamileth rivas c.i 11665024
PPTX
Fundamentos
Estructuras de control ii
Estructuras de control ii
Estructuras de control ii
Unidad 1: Estructuras de control y condicionales
Open class 3_PE.pptx
Estructuras de control selectiva
Actividad de Inicio Programación
Estructuras de control de flujo
Estructuras
Trabajo de computacion
Programaciòn Estructurada
Guia_programación Comp-EstructurasControl.pdf
Ova estructuras de control JAVA
4. Elementos de programación estructurada.pptx
Fpr0407 control
Sentencias If y Else.pdf
Intrucciones de control yamileth rivas c.i 11665024
Fundamentos
Publicidad

Último (20)

PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
IPERC...................................
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Escuelas Desarmando una mirada subjetiva a la educación
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
IPERC...................................
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Escuelas Desarmando una mirada subjetiva a la educación
Manual de Convivencia 2025 actualizado a las normas vigentes
Atencion prenatal. Ginecologia y obsetricia
Tomo 1 de biologia gratis ultra plusenmas
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PLAN DE CASTELLANO 2021 actualizado a la normativa

Java

  • 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