SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Prova internet-pssii-2009
Prova internet-pssii-2009Prova internet-pssii-2009
Prova internet-pssii-2009
Lucas Ferreira
 
Prova internet-pssii-2006
Prova internet-pssii-2006Prova internet-pssii-2006
Prova internet-pssii-2006
Lucas Ferreira
 
Presentacion de la prueba
Presentacion de la pruebaPresentacion de la prueba
Presentacion de la prueba
Sebas48
 
Vb guion informativo_dos_columnas_modelo_
Vb guion informativo_dos_columnas_modelo_Vb guion informativo_dos_columnas_modelo_
Vb guion informativo_dos_columnas_modelo_
Vanessa Barray Acurero
 

En vedette (20)

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

Similaire à Java

Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
Whaleejaa Wha
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
Whaleejaa Wha
 
Estructuras de control ii
Estructuras de control iiEstructuras de control ii
Estructuras de control ii
Whaleejaa Wha
 
U7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOSU7.resumen.ANALISIS DE LOS ALGORITMOS
U7.resumen.ANALISIS DE LOS ALGORITMOS
LuiS 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_2013
dayaorte
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..
siticfje
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcial
mtemarialuisa
 

Similaire à Java (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
 

Dernier

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 

Dernier (20)

ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 

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