SlideShare una empresa de Scribd logo
USO DE ESTRUCTURAS DE CONTROLCiclo de Grado Superior D.A.W.
ÍNDICEESTRUCTURAS DE SELECCIÓNESTRUCTURAS DE REPETICIÓNESTRUCTURAS DE SALTOCONTROL DE EXCEPCIONES
IF
IF ELSE
IF ELSEIF ELSE
SWITCH1. ESTRUCTURAS DE SELECCIÓN
ESTRUCTURAS DE SELECCIÓNLas bifurcaciones permiten ejecutar una de entre varias acciones en función del valor de una expresión lógica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de controlar el flujo de ejecución de un programa. Existen dos bifurcaciones diferentes: if y switch.1. ESTRUCTURAS DE SELECCIÓN
BIFURCACIÓN IFEsta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga la expresión de comparación (se ejecuta si la expresión de comparación tiene valor true). Tiene la forma siguiente:if(booleanExpression) {statements;}Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si sólo hay una sentencia dentro del if.1. ESTRUCTURAS DE SELECCIÓN
BIFURCACIÓN IF ELSEAnáloga a la anterior, de la cual es una ampliación. Las sentencias incluidas en el else se ejecutan en el caso de no cumplirse la expresión de comparación (false),if (booleanExpression) {	statements1;} else {	statements2;}1. ESTRUCTURAS DE SELECCIÓN
BIFURCACIÓN IF ELSEIF ELSE (I)Permite introducir más de una expresión de comparación. Si la primera condición no se cumple, se compara la segunda y así sucesivamente. En el caso de que no se cumpla ninguna de las comparaciones se ejecutan las sentencias correspondientes al else.if (booleanExpression1) {	statements1;} elseif (booleanExpression2) {	statements2;} elseif (booleanExpression3) {	statements3;} else {	statements4;}1. ESTRUCTURAS DE SELECCIÓN
BIFURCACIÓN IF ELSEIF ELSE (II)Véase a continuación el siguiente ejemplo:int numero = 61; // La variable "numero" tiene dos dígitosif(Math.abs(numero) < 10) // Math.abs() calcula el valor absoluto. (false)System.out.println("Numero tiene 1 digito ");elseif (Math.abs(numero) < 100) // Si numero es 61, estamos en este caso (true)System.out.println("Numero tiene 1 digito ");else { // Resto de los casosSystem.out.println("Numero tiene mas de 3 digitos ");System.out.println("Se ha ejecutado la opcion por defecto ");}1. ESTRUCTURAS DE SELECCIÓN
SENTENCIA SWITCH (I)Se trata de una alternativa a la bifurcación ifelseifelse cuando se compara la misma expresión con distintos valores. Su forma general es la siguiente:switch (expression) {case value1: statements1; break;case value2: statements2; break;case value3: statements3; break;case value4: statements4; break;case value5: statements5; break;case value6: statements6; break;[default: statements7;]}Las características más relevantes de switch son las siguientes:Cada sentencia case se corresponde con un único valor de expression. No se pueden establecer rangos o condiciones sino que se debe comparar con valores concretos. El ejemplo del apartado anterior no se podría realizar utilizando switch.Los valores no comprendidos en ninguna sentencia case se pueden gestionar en default, que es opcional.1. ESTRUCTURAS DE SELECCIÓN
SENTENCIA SWITCH (II)En ausencia de break, cuando se ejecuta una sentencia case se ejecutan también todas las case que van a continuación, hasta que se llega a un break o hasta que se termina el switch.	Ejemplo:char c = (char)(Math.random()*26+'a'); // Generación aleatoria de letras minúsculasSystem.out.println("La letra " + c );switch (c) {case 'a': // Se compara con la letra acase 'e': // Se compara con la letra ecase 'i': // Se compara con la letra icase 'o': // Se compara con la letra ocase 'u': // Se compara con la letra uSystem.out.println(" Es una vocal "); break;default:System.out.println(" Es una consonante ");}1. ESTRUCTURAS DE SELECCIÓN
WHILE
FOR
DO WHILE2. ESTRUCTURAS DE REPETICIÓN
BUCLESUn bucle se utiliza para realizar un proceso repetidas veces. Se denomina también lazo o loop. El código incluido entre las llaves {} (opcionales si el proceso repetitivo consta de una sola línea), se ejecutará mientras se cumpla unas determinadas condiciones. Hay que prestar especial atención a los bucles infinitos, hecho que ocurre cuando la condición de finalizar el bucle (booleanExpression) no se llega a cumplir nunca. Se trata de un fallo muy típico, habitual sobre todo entre programadores poco experimentados.2. ESTRUCTURAS DE REPETICIÓN
BUCLE WHILELas sentencias statements se ejecutan mientras booleanExpression sea true.while (booleanExpression) {statements;}2. ESTRUCTURAS DE REPETICIÓN
BUCLE FOR (I)La forma general del bucle for es la siguiente:for (initialization; booleanExpression; increment) {statements;}que es equivalente a utilizar while en la siguiente forma,initialization;while (booleanExpression) {statements;increment;}La sentencia o sentencias initialization se ejecuta al comienzo del for, e incrementa después de statements. La booleanExpression se evalúa al comienzo de cada iteración; el bucle termina cuando la expresión de comparación toma el valor false. Cualquiera de las tres partes puede estar vacía. La initializationy el increment pueden tener varias expresiones separadas por comas.2. ESTRUCTURAS DE REPETICIÓN
BUCLE FOR(II)Por ejemplo, el código situado a la izquierda produce la salida que aparece a la derecha:2. ESTRUCTURAS DE REPETICIÓN
BUCLE DO WHILEEs similar al bucle while pero con la particularidad de que el control está al final del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condición se cumpla o no). Una vez ejecutados los statements, se evalúa la condición: si resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condición se evalúa a false finaliza el bucle. Este tipo de bucles se utiliza con frecuencia para controlar la satisfacción de una determinada condición de error o de convergencia.do {statements} while (booleanExpression);2. ESTRUCTURAS DE REPETICIÓN
BREAK
CONTINUE
RETURN3. ESTRUCTURAS DE SALTO
SENTENCIAS BREAK Y CONTINUELa sentencia break es válida tanto para las bifurcaciones como para los bucles. Hace que se salga inmediatamente del bucle o bloque que se está ejecutando, sin sin realizar la ejecución del resto de las sentencias.La sentencia continue se utiliza en los bucles (no en bifurcaciones). Finaliza la iteración “i” que en ese momento se está ejecutando (no ejecuta el resto de sentencias que hubiera hasta el final del bucle). Vuelve al comienzo del bucle y comienza la siguiente iteración (i+1).3. ESTRUCTURAS DE SALTO
SENTENCIAS break y continue CON ETIQUETAS (I)Las etiquetas permiten indicar un lugar donde continuar la ejecución de un programa después de un break o continue. El único lugar donde se pueden incluir etiquetas es justo delante de un bloque de código entre llaves {} (if, switch, do...while, while, for) y sólo se deben utilizar cuando se tiene uno o más bucles (o bloques) dentro de otro bucle y se desea salir (break) o continuar con la siguiente iteración (continue) de un bucle que no es el actual.3. ESTRUCTURAS DE SALTO
SENTENCIAS break y continue CON ETIQUETAS (II)Por tanto, la sentencia break labelName finaliza el bloque que se encuentre a continuación de labelName. Por ejemplo, en las sentencias,bucleI: // etiqueta o labelfor ( int i = 0, j = 0; i < 100; i++){while ( true ) {if( (++j) > 5) { break bucleI; } // Finaliza ambos bucleselse{ break; } // Finaliza el bucle interior (while)}}la expresión break bucleI; finaliza los dos bucles simultáneamente, mientras que la expresión break; sale del bucle while interior y seguiría con el bucle for en i. Con los valores presentados ambos bucles finalizarán con i = 5 y j = 6 (se invita al lector a comprobarlo).3. ESTRUCTURAS DE SALTO

Más contenido relacionado

PPT
Estructuras de control en Java
DOCX
métodos procedimimientos estructuras de control java
PPT
Estructuras De Control
 
PPT
Estructuras de Control
PPTX
Estructuras de control
PPT
Iv unidad estructuras de control
PDF
15 Curso de POO en java - estructuras repetitivas
Estructuras de control en Java
métodos procedimimientos estructuras de control java
Estructuras De Control
 
Estructuras de Control
Estructuras de control
Iv unidad estructuras de control
15 Curso de POO en java - estructuras repetitivas

La actualidad más candente (19)

PPTX
4. estructuras selectivas
PPTX
Certificación java 6 cap 5
PPT
Scjp Jug Section 2 Flow Control
PDF
Estructuras de control C++
PDF
Sentencias de control
PDF
Estructuras de control
PPT
Estructuras repetitivas - pseudocodigo
PPTX
Instrucciones basicas de_c_
PPTX
Estructuras secuenciales, selectivas e iterativas3
DOCX
Estructuras
PPTX
Sentencia de control
PPTX
Estructuras de control en Visual Basic
PPTX
algoritmos
PPTX
Estructura repetitiva for y while
PPTX
Toma de decisiones If Else
PPTX
Actividad 2. segundo corte (Abraham Mora). Estructuras de control, secuencial...
PPTX
Estructuras repetitivas for y while
DOCX
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
PPT
Fpr Tema 5 www.fresymetal.com
4. estructuras selectivas
Certificación java 6 cap 5
Scjp Jug Section 2 Flow Control
Estructuras de control C++
Sentencias de control
Estructuras de control
Estructuras repetitivas - pseudocodigo
Instrucciones basicas de_c_
Estructuras secuenciales, selectivas e iterativas3
Estructuras
Sentencia de control
Estructuras de control en Visual Basic
algoritmos
Estructura repetitiva for y while
Toma de decisiones If Else
Actividad 2. segundo corte (Abraham Mora). Estructuras de control, secuencial...
Estructuras repetitivas for y while
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
Fpr Tema 5 www.fresymetal.com
Publicidad

Destacado (20)

PPTX
Algoritmo de seudocodigo
PPT
11 estructuras de control decision
PPTX
Cap2
PPTX
Algoritmo, seudocodigo, y diagrama de flujo.pptx2
PDF
Programación 1: estructuras de control
PPTX
Estructuras de Control en C++
PPTX
Presentación1
PPTX
Estructuras de control algoritmos
PDF
Fundamentos de java herbert schildt
PPTX
Estructuras de control
PPTX
Funciones biblioteca
PDF
Arduino práctico introducción a la electrónica
PPT
Lenguaje Borland C - Estructuras de Control
PPSX
Estructuras de control selectivas
PPT
Lenguaje Borland C - Estructura y Componentes
PPTX
Estructuras de control selectivas
PPTX
Diagramas de Flujo
PPTX
Diagramas de flujo
PPT
Diagramas de Flujo
PDF
Workshop iniciacion arduino d1
Algoritmo de seudocodigo
11 estructuras de control decision
Cap2
Algoritmo, seudocodigo, y diagrama de flujo.pptx2
Programación 1: estructuras de control
Estructuras de Control en C++
Presentación1
Estructuras de control algoritmos
Fundamentos de java herbert schildt
Estructuras de control
Funciones biblioteca
Arduino práctico introducción a la electrónica
Lenguaje Borland C - Estructuras de Control
Estructuras de control selectivas
Lenguaje Borland C - Estructura y Componentes
Estructuras de control selectivas
Diagramas de Flujo
Diagramas de flujo
Diagramas de Flujo
Workshop iniciacion arduino d1
Publicidad

Similar a DAW-Estructuras de control (20)

PPTX
Lenguajes de Programación: Estructuras de Control
PDF
Estructuras de Control
PDF
D6 a sentencias de control de flujo
PPTX
programacion estructurada
PDF
Estructuras de Control
PPTX
ESTRUCTURAS DE CONTROL
PPT
Iv unidad estructuras de control
PDF
3 java sesin 3 pps
PPTX
Estructura de control en la Programación. Luis Rondón
PPT
Tema6 PARA INTERNET INVESTIGACION DATOS I
DOCX
Las sentencias de_control[1]
DOCX
Las sentencias de_control[1]
PPTX
Semana 05 - Estructuras repetitivas (1).pptx
PPTX
Estructuras de control en la programación.
PDF
PPTX
Estructuras iterativas en java y pseudocódigo
PPTX
Programación estructurada Analisis y Diseño Jessy Lopez 11v02.pptx
PPTX
Estructuras repetitivas
PDF
Estructuras selectivas y repetitiva c#
Lenguajes de Programación: Estructuras de Control
Estructuras de Control
D6 a sentencias de control de flujo
programacion estructurada
Estructuras de Control
ESTRUCTURAS DE CONTROL
Iv unidad estructuras de control
3 java sesin 3 pps
Estructura de control en la Programación. Luis Rondón
Tema6 PARA INTERNET INVESTIGACION DATOS I
Las sentencias de_control[1]
Las sentencias de_control[1]
Semana 05 - Estructuras repetitivas (1).pptx
Estructuras de control en la programación.
Estructuras iterativas en java y pseudocódigo
Programación estructurada Analisis y Diseño Jessy Lopez 11v02.pptx
Estructuras repetitivas
Estructuras selectivas y repetitiva c#

Más de vay82 (6)

PPTX
DAW - Estructuras de almacenamiento
PPTX
DAW - Desarrollo de clases
PPT
Los Blogs y su papel en la educación
PPT
Los Blogs y su papel en la educación
PPT
Historia informatica
PPT
Contenidos disciplinares - Módulo Aplicaciones Web
DAW - Estructuras de almacenamiento
DAW - Desarrollo de clases
Los Blogs y su papel en la educación
Los Blogs y su papel en la educación
Historia informatica
Contenidos disciplinares - Módulo Aplicaciones Web

Último (20)

PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
biología es un libro sobre casi todo el tema de biología
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PPT
Cosacos y hombres del Este en el Heer.ppt
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
caso clínico iam clinica y semiología l3.pptx
Escuela Sabática 6. A través del Mar Rojo.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Escuelas Desarmando una mirada subjetiva a la educación
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
biología es un libro sobre casi todo el tema de biología
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
ciencias-1.pdf libro cuarto basico niños
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Cosacos y hombres del Este en el Heer.ppt
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf

DAW-Estructuras de control

  • 1. USO DE ESTRUCTURAS DE CONTROLCiclo de Grado Superior D.A.W.
  • 2. ÍNDICEESTRUCTURAS DE SELECCIÓNESTRUCTURAS DE REPETICIÓNESTRUCTURAS DE SALTOCONTROL DE EXCEPCIONES
  • 3. IF
  • 7. ESTRUCTURAS DE SELECCIÓNLas bifurcaciones permiten ejecutar una de entre varias acciones en función del valor de una expresión lógica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de controlar el flujo de ejecución de un programa. Existen dos bifurcaciones diferentes: if y switch.1. ESTRUCTURAS DE SELECCIÓN
  • 8. BIFURCACIÓN IFEsta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga la expresión de comparación (se ejecuta si la expresión de comparación tiene valor true). Tiene la forma siguiente:if(booleanExpression) {statements;}Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si sólo hay una sentencia dentro del if.1. ESTRUCTURAS DE SELECCIÓN
  • 9. BIFURCACIÓN IF ELSEAnáloga a la anterior, de la cual es una ampliación. Las sentencias incluidas en el else se ejecutan en el caso de no cumplirse la expresión de comparación (false),if (booleanExpression) { statements1;} else { statements2;}1. ESTRUCTURAS DE SELECCIÓN
  • 10. BIFURCACIÓN IF ELSEIF ELSE (I)Permite introducir más de una expresión de comparación. Si la primera condición no se cumple, se compara la segunda y así sucesivamente. En el caso de que no se cumpla ninguna de las comparaciones se ejecutan las sentencias correspondientes al else.if (booleanExpression1) { statements1;} elseif (booleanExpression2) { statements2;} elseif (booleanExpression3) { statements3;} else { statements4;}1. ESTRUCTURAS DE SELECCIÓN
  • 11. BIFURCACIÓN IF ELSEIF ELSE (II)Véase a continuación el siguiente ejemplo:int numero = 61; // La variable "numero" tiene dos dígitosif(Math.abs(numero) < 10) // Math.abs() calcula el valor absoluto. (false)System.out.println("Numero tiene 1 digito ");elseif (Math.abs(numero) < 100) // Si numero es 61, estamos en este caso (true)System.out.println("Numero tiene 1 digito ");else { // Resto de los casosSystem.out.println("Numero tiene mas de 3 digitos ");System.out.println("Se ha ejecutado la opcion por defecto ");}1. ESTRUCTURAS DE SELECCIÓN
  • 12. SENTENCIA SWITCH (I)Se trata de una alternativa a la bifurcación ifelseifelse cuando se compara la misma expresión con distintos valores. Su forma general es la siguiente:switch (expression) {case value1: statements1; break;case value2: statements2; break;case value3: statements3; break;case value4: statements4; break;case value5: statements5; break;case value6: statements6; break;[default: statements7;]}Las características más relevantes de switch son las siguientes:Cada sentencia case se corresponde con un único valor de expression. No se pueden establecer rangos o condiciones sino que se debe comparar con valores concretos. El ejemplo del apartado anterior no se podría realizar utilizando switch.Los valores no comprendidos en ninguna sentencia case se pueden gestionar en default, que es opcional.1. ESTRUCTURAS DE SELECCIÓN
  • 13. SENTENCIA SWITCH (II)En ausencia de break, cuando se ejecuta una sentencia case se ejecutan también todas las case que van a continuación, hasta que se llega a un break o hasta que se termina el switch. Ejemplo:char c = (char)(Math.random()*26+'a'); // Generación aleatoria de letras minúsculasSystem.out.println("La letra " + c );switch (c) {case 'a': // Se compara con la letra acase 'e': // Se compara con la letra ecase 'i': // Se compara con la letra icase 'o': // Se compara con la letra ocase 'u': // Se compara con la letra uSystem.out.println(" Es una vocal "); break;default:System.out.println(" Es una consonante ");}1. ESTRUCTURAS DE SELECCIÓN
  • 14. WHILE
  • 15. FOR
  • 16. DO WHILE2. ESTRUCTURAS DE REPETICIÓN
  • 17. BUCLESUn bucle se utiliza para realizar un proceso repetidas veces. Se denomina también lazo o loop. El código incluido entre las llaves {} (opcionales si el proceso repetitivo consta de una sola línea), se ejecutará mientras se cumpla unas determinadas condiciones. Hay que prestar especial atención a los bucles infinitos, hecho que ocurre cuando la condición de finalizar el bucle (booleanExpression) no se llega a cumplir nunca. Se trata de un fallo muy típico, habitual sobre todo entre programadores poco experimentados.2. ESTRUCTURAS DE REPETICIÓN
  • 18. BUCLE WHILELas sentencias statements se ejecutan mientras booleanExpression sea true.while (booleanExpression) {statements;}2. ESTRUCTURAS DE REPETICIÓN
  • 19. BUCLE FOR (I)La forma general del bucle for es la siguiente:for (initialization; booleanExpression; increment) {statements;}que es equivalente a utilizar while en la siguiente forma,initialization;while (booleanExpression) {statements;increment;}La sentencia o sentencias initialization se ejecuta al comienzo del for, e incrementa después de statements. La booleanExpression se evalúa al comienzo de cada iteración; el bucle termina cuando la expresión de comparación toma el valor false. Cualquiera de las tres partes puede estar vacía. La initializationy el increment pueden tener varias expresiones separadas por comas.2. ESTRUCTURAS DE REPETICIÓN
  • 20. BUCLE FOR(II)Por ejemplo, el código situado a la izquierda produce la salida que aparece a la derecha:2. ESTRUCTURAS DE REPETICIÓN
  • 21. BUCLE DO WHILEEs similar al bucle while pero con la particularidad de que el control está al final del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condición se cumpla o no). Una vez ejecutados los statements, se evalúa la condición: si resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condición se evalúa a false finaliza el bucle. Este tipo de bucles se utiliza con frecuencia para controlar la satisfacción de una determinada condición de error o de convergencia.do {statements} while (booleanExpression);2. ESTRUCTURAS DE REPETICIÓN
  • 22. BREAK
  • 25. SENTENCIAS BREAK Y CONTINUELa sentencia break es válida tanto para las bifurcaciones como para los bucles. Hace que se salga inmediatamente del bucle o bloque que se está ejecutando, sin sin realizar la ejecución del resto de las sentencias.La sentencia continue se utiliza en los bucles (no en bifurcaciones). Finaliza la iteración “i” que en ese momento se está ejecutando (no ejecuta el resto de sentencias que hubiera hasta el final del bucle). Vuelve al comienzo del bucle y comienza la siguiente iteración (i+1).3. ESTRUCTURAS DE SALTO
  • 26. SENTENCIAS break y continue CON ETIQUETAS (I)Las etiquetas permiten indicar un lugar donde continuar la ejecución de un programa después de un break o continue. El único lugar donde se pueden incluir etiquetas es justo delante de un bloque de código entre llaves {} (if, switch, do...while, while, for) y sólo se deben utilizar cuando se tiene uno o más bucles (o bloques) dentro de otro bucle y se desea salir (break) o continuar con la siguiente iteración (continue) de un bucle que no es el actual.3. ESTRUCTURAS DE SALTO
  • 27. SENTENCIAS break y continue CON ETIQUETAS (II)Por tanto, la sentencia break labelName finaliza el bloque que se encuentre a continuación de labelName. Por ejemplo, en las sentencias,bucleI: // etiqueta o labelfor ( int i = 0, j = 0; i < 100; i++){while ( true ) {if( (++j) > 5) { break bucleI; } // Finaliza ambos bucleselse{ break; } // Finaliza el bucle interior (while)}}la expresión break bucleI; finaliza los dos bucles simultáneamente, mientras que la expresión break; sale del bucle while interior y seguiría con el bucle for en i. Con los valores presentados ambos bucles finalizarán con i = 5 y j = 6 (se invita al lector a comprobarlo).3. ESTRUCTURAS DE SALTO
  • 28. SENTENCIAS break y continue CON ETIQUETAS (III)La sentencia continue (siempre dentro de al menos un bucle) permite transferir el control a un bucle con nombre o etiqueta. Por ejemplo, la sentencia,continuebucle1;transfiere el control al bucle for que comienza después de la etiqueta bucle1: para que realice una nueva iteración, como por ejemplo:bucle1:for (int i=0; i<n; i++) {bucle2:for (int j=0; j<m; j++) {...if (expression) continue bucle1; then continue bucle2;...}}3. ESTRUCTURAS DE SALTO
  • 29. SENTENCIA RETURNOtra forma de salir de un bucle (y de un método) es utilizar la sentencia return. A diferencia de continueo break, la sentencia return sale también del método o función. En el caso de que la función devuelva alguna variable, este valor se deberá poner a continuación del return (returnvalue;).3. ESTRUCTURAS DE SALTO
  • 30. TRY { … } CATCH { … } FINALLY { … }4. CONTROL DE EXCEPCIONES
  • 31. Bloque try {...} catch {...} finally {...}Java incorpora en el propio lenguaje la gestión de errores. El mejor momento para detectar los errores es durante la compilación. Sin embargo prácticamente sólo los errores de sintaxis son detectados en esta operación. El resto de problemas surgen durante la ejecución de los programas. En el lenguaje Java, una Exception es un cierto tipo de error o una condición anormal que se ha producido durante la ejecución de un programa. Algunas excepciones son fatales y provocan que se deba finalizar la ejecución del programa. En este caso conviene terminar ordenadamente y dar un mensaje explicando el tipo de error que se ha producido. Otras excepciones, como por ejemplo no encontrar un fichero en el que hay que leer o escribir algo, pueden ser recuperables. En este caso el programa debe dar al usuario la oportunidad de corregir el error (definiendo por ejemplo un nuevo pathdel fichero no encontrado).4. CONTROL DE EXCEPCIONES
  • 32. Bloque try {...} catch {...} finally {...}Los errores se representan mediante clases derivadas de la clase Throwable, pero los que tiene que chequear un programador derivan de Exception (java.lang.Exception que a su vez deriva de Throwable). Existen algunos tipos de excepciones que Java obliga a tener en cuenta. Esto se hace mediante el uso de bloques try, catch y finally.El código dentro del bloque try está “vigilado”. Si se produce una situación anormal y se lanza como consecuencia una excepción, el control pasa al bloque catch, que se hace cargo de la situación y decide lo que hay que hacer. Se pueden incluir tantos bloques catch como se desee, cada uno de los cuales tratará un tipo de excepción. Finalmente, si está presente, se ejecuta el bloque finally, que es opcional, pero que en caso de existir se ejecuta siempre, sea cual sea el tipo de error.4. CONTROL DE EXCEPCIONES
  • 33. Bloque try {...} catch {...} finally {...}En el caso en que el código de un método pueda generar una Exception y no se desee incluir en dicho método la gestión del error (es decir los bucles try/catch correspondientes), es necesario que el método pase la Exception al método desde el que ha sido llamado. Esto se consigue mediante la adición de la palabra throws seguida del nombre de la Exception concreta, después de la lista de argumentos del método. A su vez el método superior deberá incluir los bloques try/catch o volver a pasar la Exception. De esta forma se puede ir pasando la Exception de un método a otro hasta llegar al último método del programa, el método main().4. CONTROL DE EXCEPCIONES
  • 34. Bloque try {...} catch {...} finally {...}En el siguiente ejemplo se presentan dos métodos que deben "controlar" una IOExceptionrelacionada con la lectura ficheros y una MyException propia. El primero de ellos (metodo1) realiza la gestión de las excepciones y el segundo (metodo2) las pasa al siguiente método.void metodo1() {...try {... // Código que puede lanzar las excepciones IOException y MyException} catch (IOException e1) {// Se ocupa de IOException simplemente dando avisoSystem.out.println(e1.getMessage());} catch (MyException e2) {// Se ocupa de MyException dando un aviso y finalizando la funciónSystem.out.println(e2.getMessage()); return;} finally { // Sentencias que se ejecutarán en cualquier caso...}]...} // Fin del metodo1void metodo2() throws IOException, MyException {...// Código que puede lanzar las excepciones IOException y MyException...} // Fin del metodo24. CONTROL DE EXCEPCIONES