Académique Documents
Professionnel Documents
Culture Documents
INTRODUCCION
Cada mtodo de los programas que hemos hecho hasta ahora, era un conjunto de sentencias que se ejecutaban en el orden en que se haban escrito.
Pero esto no es siempre as. Ya que puede surgir la necesidad de ejecutar unas sentencias u otras en funcin de algunos criterios especificados por nosotros.
As mismo en las de una ocasin necesitaremos ejecutar un conjunto de sentencias un numero determinado de veces o bien hasta que se cumpla una condicin impuesta por nosotros. En esta unidad aprenders a escribir cdigo para que un programa tome decisiones y para que sea capaz de ejecutar bloques de sentencias repetidas veces.
Estructuras de control
Nos permite cambiar el orden de las declaraciones ejecutadas en nuestros programas. de seleccin / decisin control
structures
Nos permite seleccionar secciones especficas del cdigo para ser ejecutado, a partir de una condicin. Estructuras de iteracin / repetition control structures
Nos permite ejecutar secciones especficas del cdigo una cantidad determinada de veces.
Estructuras de control en Java 3
Estructuras de seleccin
Son declaraciones que nos permiten seleccionar y ejecutar bloques especficos del cdigo mientras otras partes son ignoradas.
if( boolean_expression ) statement; if( boolean_expression ){ statement1; } else{ statement2; } if( boolean_expression1 ) statement1; else if( boolean_expression2 ) statement2; else statement3
Estructuras de control en Java 4
Tipos:
A la hora de utilizar esta instruccin hay q tener en cuenta lo siguiente: La condicin de comprobacin puede ser cualquier expresin cuyo resultado sea de tipo bolean(true o false). En cualquier otro caso se producir un error de compilacin
Si
== != < > <= >=
Operadores condicionales
El bloque else es opcional. En este caso si la condicin no se cumple el programa continuara su ejecucin en la siguiente lnea despus de la llave del cierre } del if.
Estructuras de control en Java 5
Nos permite comprobar una condicin dentro de un programa. En caso de que la condicin se cumpla se ejecutara un determinado conjunto de instrucciones Mientras que sino se cumple, se podr optar por ejecutar otro conjunto diferente de instrucciones o por no ejecutar ninguna.
Olvidar los parntesis al poner la condicin del if es un error sintctico (los parntesis son necesarios)
Declaracin If Diagrama
Decisin Simple
si <Expresin_Lgica> entonces <acciones> fin_si If (condicin) { Sentencias }
10
Decisin doble
if ( condicin)
si <Expresin_Lgica> entonces
<acciones1>
si_no <acciones2>
sentencia
} else{ sentencia }
fin_si
11
12
Decision multiple
si <Expresin_Lgica> entonces <acciones1> si_no if( Expresion_logica) { Acciones1 } else{
if(Expresion_Logica) {
Acciones2
}
else { Acciones3
13
Errores comunes
1. La condicin dentro de la declaracin If no evala
un valor boleano. Por ejemplo, //WRONG int number = 0; if( number ){ //some statements here } La variable number no es un tipo booleano 2. Escribir elseif en vez de else if.
14
Declaracin switch
La sentencia switch se encarga de estructurar una seleccin mltiple. Al contrario del enunciado if-else que slo podemos indicar dos alternativas, maneja un nmero finito de posibilidades.
15
segn_sea switch( expresin ) { <Expresin_Ordinal > hacer case valor1: <lista_de_valores_ordinales >:<acciones>
sentencia1;
... break;
...
case valor2: sentencia2; ... break; default:
fin_segn
sentencia;
16
Declaracin switch
El valor de la expresin y de las constantes tiene que ser de tipo char, byte, short o int . Al evaluar la expresin de switch, el intrprete busca una constante con el mismo valor. Si la encuentra, ejecuta las sentencias asociadas a esta constante hasta que tropiece con un break. La sentencia break finaliza la ejecucin de esta estructura. Si no encuentra ninguna constante que coincida con la expresin, busca la lnea default.
Declaracin switch
NOTA:
A
diferencia con el caso de declaracin if, las mltiples declaraciones se ejecutan en la declaracin sin necesidad de cambiar las llaves. un case en un switch se ha encontrado la misma condicin, todas las declaraciones relacionadas con este case se ejecutan. No slo eso, las declaraciones relacionadas con los cases siguientes son tambin ejecutados.
evitar que el programa siga ejecutando los case posteriores, usamos la declaracin break como ltima declaracin.
Estructuras de control en Java 18
Cuando
Para
20
Estructuras de iteracin
Nos permite ejecutar secciones especficas del cdigo una cantidad determinada de veces..
Tipos:
while
do-while for
Estructuras de control en Java 21
FOR
La instruccin repetitiva for permite ejecutar in conjunto de instrucciones un numero determinado de veces.
22
For
desde <Variable> <V_Inicial> Hasta <V_Final> [Incremento|Decremet o <incremento>] Hacer
for (<inicializacin>;<c ondicin>;<increment o>) { <sentecias>
<acciones>
fin_desde
23
for (int i=1; i<=10; i++) //muestra los nmeros del 1-10 { system.out.println(el numero es:+i); }
24
FOR
La ejecucin del bucle for comienza con la instruccin de inicializacin, es decir inicializara una variable de control. Incluyendo su declaracin. A continuacin se comprueba la condicin, cuyo resultado debe de ser siempre de tipo bolean. En caso de que el resultado sea true se ejecutarn las instrucciones delimitadas por el bloque, de llaves {} Despus se ejecuta la instruccin de incremento, y volver a comprobarse la condicin. En el momento en que la condicin sea false, las instrucciones del bloque no se ejecutaran, continuando el programa en la siguiente lnea.
}
Estructuras de control en Java 25
FOR
CONSIDERACIONES
Las instrucciones de control del bucle for (inicializacin, condicin e incremento) son opcionales. En cualquier caso, el delimitador de instrucciones , siempre debe estar presente. Por ejemplo si se omiten instrucciones de comparacin e incremento, la cabecera del for quedara:
for(int i=0;;)
Si se declara una variable, en la instruccin de inicializacin, sta sera accesible nicamente desde el interior del for. Al igual que sucede con if, las llaves delimitadas del bloque solamente son obligatorias si el for esta compuesto por mas de una instruccin
}
Estructuras de control en Java 26
bucle while
Permite En
ejecutar un bloque de instrucciones mientras se cumpla una determianda condicion dentro del programa. ambos casos el bloque de instruciones se ejecuta mientras la condicon se cumple. En el segundo formato se ejecutan las instrucciones y luego se comprueba la condicion. Lo que garantiza que el bloque de instrucciones se ejecute por lo menos una vez iteracin continuar hasta que su condicin sea falsa.
La
27
while
<acciones>
fin_mientras
28
Ejemplo 1
int x = 0; while (x<10) { System.out.println(x); x++; }
29
Ejemplo 2
//infinite loop while(true) System.out.println(hello);
30
Ejemplo 3
//no loops // statement is not even executed while (false) System.out.println(hello);
31
bucle do-while
do-while
La
sentencia de iteracin do-while es de tipo posprueba. Primero realiza las acciones luego pregunta.
32
Do while
repetir <acciones> do { Acciones } while ( Expresion_Logica );
33
Ejemplo 1
int x = 0;
do { System.out.println(x); x++; }while (x<10);
34
Ejemplo 2
//infinite loop do{ System.out.println(hello); } while (true);
35
Ejemplo 3
//one loop // statement is executed once do System.out.println(hello); while (false);
36
Directrices de codificacin
1. Un error de programacin comn se da cuando se utiliza el bucle do-while y se olvidar de escribir el punto y coma despus de la expresin while,
do{ ... }while(boolean_expression)//WRONG->forgot semicolon;
37
bucle for
Bucle for
Siempre equivalente a un bucle while Como en el caso de do-while, muchas veces un bucle for es ms compacto que un while.
38
bloque-o-instruccin
actualizacin
39
Sentencia break
La sentencia de 'break' es de tipo de control de bucles. Dentro de la iteracion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteracion de dicho bucle.
Cuando se encuentra en una sentencia switch o bucle, break hace que el control del flujo del programa pase a la siguiente sentencia que se encuentre fuera del entorno del switch o bucle.
40
Sentencia break
Ejemplo:
0; j<10; j++){ 1; 2; 3;
Este bucle debera ejecutarse 10 veces, desde j = 0 hasta j = 9, sin embargo la utilizacin de la sentencia break, rompe la iteracin del bucle, de tal manera que tras la primera ejecucin el bucle acaba habindose ejecutado una sola vez.
41
Java incorpora la posibilidad de etiquetar la sentencia break, de forma que el control pasa a sentencias que no se encuentran inmediatamente despus de la sentencia switch o del bucle, es decir, saltar a la sentencia en donde se encuentre situada la etiqueta. La sintaxis de una sentencia etiquetada es la siguiente: break [etiqueta];
42
searchLabel:
for( int i=0; i<numbers.length; i++ ){ for( int j=0; j<numbers[i].length; j++ ){ if( searchNum == numbers[i][j] ){ foundNum = true;
break searchLabel;
}
} } if( foundNum ) System.out.println(searchNum + " found!" ); else System.out.println(searchNum + " not found!"); } }
Estructuras de control en Java 43
Sentencia continue
La sentencia de continue es de tipo de control de bucles. Dentro de la iteracion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteracion de dicho bucle. La sentencia continue no se puede utilizar en una sentencia switch. Provocando que se ejecute la siguiente iteracion de dicho bucle, ignorando las sentencias posteriores a "continue"
44
Sentencia continue
Ejemplo:
Este bucle se ejecuta 10 veces, pero con la salvedad de que la sentencia 4 no se ejecuta ninguna vez. Es decir, se ejecutan las sentencias 1, 2 y 3 y cuando se llega a la sentencia de control continue se vuelve de nuevo a comprobar la condicion del for y en caso de cumplirse de nuevo a la sentencia 1 y as sucesivamente.
Estructuras de control en Java 45
Java permite el uso de etiquetas en la sentencia continue, de forma que el funcionamiento normal se ve alterado y el salto en la ejecucin del flujo del programa se realizar a la sentencia en la que se encuentra colocada la etiqueta. La sintaxis de una sentencia etiquetada es la siguiente: continue [etiqueta];
46
47
Sentencia return
La sentencia return se utiliza para terminar un mtodo o funcin y opcionalmente devolver un valor al mtodo de llamada.
En el cdigo de una funcin siempre hay que ser consecuentes con la declaracin que se haya hecho de ella. Por ejemplo, si se declara una funcin para que devuelva un entero, es imprescindible colocar un return final para salir de esa funcin, independientemente de que haya otros en medio del cdigo que tambin provoquen la salida de la funcin. En caso de no hacerlo se generar un Warning, y el cdigo Java no se puede compilar con Warnings.
48
Sentencia return
Si el valor a retornar es void, se puede omitir ese valor de retorno, con lo que la sintaxis se queda en un sencillo: return;
y se usara simplemente para finalizar el mtodo o funcin en que se encuentra, y devolver el control al mtodo o funcin de llamada.
49