La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de Control

Presentaciones similares


Presentación del tema: "Estructuras de Control"— Transcripción de la presentación:

1 Estructuras de Control
Corina Flores Villarroel UMSS - Programa MEMI Corina Flores V Programa MEMI

2 Introducción Recordemos … Un programa se define:
1. Bloque de declaraciones Su misión consiste en indicar al procesador que reserve espacio en la memoria para una constante, variable u objeto del programa, indicando asimismo su tipo y nombre. “Secuencia de instrucciones lógicamente ordenadas que pueden ser ejecutadas en una computadora”. Corina Flores V Programa MEMI

3 Introducción Recordemos … Un programa se define:
2. Bloque de instrucciones Constituído por un conjunto de operaciones y la secuencia de instrucciones que se han de realizar para la obtención de los resultados deseados. Dentro de éste bloque se diferencian tres partes fundamentales: “Secuencia de instrucciones lógicamente ordenadas que pueden ser ejecutadas en una computadora”. Entrada de datos: instrucciones que toman datos de un dispositivo externo. (b) Proceso: instrucciones que modifican/procesan los datos. (c) Salida de resultados: instrucciones que toman los datos finales de la memoria central y los envía a dispositivos externos. Corina Flores V Programa MEMI

4 Introducción Recordemos …
Esto nos dá la idea de que las instrucciones estan ordenadas de tal manera que una está a continuación de la otra. Corina Flores V Programa MEMI

5 Introducción Lo que significa …
Pensar en un sentido muy restringido, ya que obligan a mantener una secuencia para su ejecución. Sin embargo, … también hay necesidad de que durante la ejecución del programa el orden de ejecución de las instrucciones sean alteradas. Corina Flores V Programa MEMI

6 Estructuras de Control
Las estructuras de control tienen una finalidad bastante definida: señalar el orden en que tienen que sucederse o ejecutarse los pasos de un algoritmo o instrucciones en un programa. Existen: Secuenciales, Pueden ser de: Selección e Iterativas Corina Flores V Programa MEMI

7 Secuenciales Como ya se había indicado … son estructuras que obedecen la linealidad, es decir, no admiten saltos A la ejecución de una instrucción le sigue otra o la siguiente instrucción y así sucesivamente. Mantiene la secuencia de acciones en el orden en el que aparecen las instrucciones. Corina Flores V Programa MEMI

8 Secuenciales … ejemplo
public class Secuencial { public static void main(String [] args) int x; int y; x = 10; y = 2; x = x - y; y = x/4; System.out.println("El valor de x es = " + x); System.out.println("El valor de y es = " + y); } int x; int y; x = 10; . System.out Corina Flores V Programa MEMI

9 Otras estructuras … Pero … no necesariemente todos los programas pueden ejecutarse de esta forma secuencial, hay necesidad de variar el flujo de control de un programa ya sea para … Tomar decisiones (Selección) y/o Repetir un conjunto de instrucciones (Iteración) Corina Flores V Programa MEMI

10 Selección La sentencia de selección IF, permite tomar decisiones en base a una condición lógica. Luego decide qué sucederá en función al resultado. A esta sentencia también se conoce como: Selección Condicional De decisión Corina Flores V Programa MEMI

11 Selección Por ejemplo, si un programa muestra un mensaje en la pantalla que pregunta al usuario ”¿Desea seguir adelante?”, obviamente, de la respuesta del usuario dependerá la siguiente acción del programa. El programador debe escribir el código para las dos posibilidades (sí y no), aunque cuando el programa esté funcionando, sólo se elegirá una. Corina Flores V Programa MEMI

12 Selección La sentencia IF, se puede emplear de diferentes maneras:
A) Simple B) Concatenada C) Anidada Corina Flores V Programa MEMI

13 Selección … simple (if)
if (condición) instrucción if (condición) { bloque } Condición, es una expresión booleana V cond int x; F Corina Flores V Programa MEMI

14 Selección … ejemplo public class Simple_if {
public static void main(String [] args) { int a, b; a = 10; b = 5; if (a > b) // if simple, con una instruccion System.out.println("** a es mayor que b ** "); if (a > b) { // if simple, con un bloque de instrucciones System.out.println("A es mayor que B "); System.out.println("El valor de A es = " + a); System.out.println("El valor de B es = " + b); } Corina Flores V Programa MEMI

15 Selección … simple (if)
Pero no siempre el resultado de la condición es verdadera, entonces hay necesidad de incluir la cláusula else en caso de que el resultado sea falso. Entonces podemos concatenar sentencias if Corina Flores V Programa MEMI

16 Selección … concatenación
if (condición) { bloque } else { F V cond Corina Flores V Programa MEMI

17 Secuenciales … ejemplo
public class Concatenacion_If { public static void main(String [] args) { int a, b; a = 1; b = 5; if (a > b) { // por Verdad a = a - b; System.out.println("El valor de A es = " + a); } else { // por Falso b = b*a; System.out.println("El valor de B es = " + b); Corina Flores V Programa MEMI

18 Selección … anidación F V cond F V cond F V cond if (condición1) {
bloque1 } else { bloque2 else { if (condición3) { bloque3 bloque4 cond F V cond F V cond Corina Flores V Programa MEMI

19 Selección … ejemplo public class Anidacion_If {
public static void main(String [] args) int edadJuan = 20; int edadJose = 18; if (edadJuan < edadJose) System.out.println("Juan es mas joven que Jose"); else if (edadJuan == edadJose) System.out.println("Juan tiene la misma edad que Jose"); System.out.println("Juan es mayor que Jose"); } Corina Flores V Programa MEMI

20 ERRORES Comunes Olvidar los () en la condición
Confundir el operador relación == con el de asignación = Colocar mal los if anidados No tener en cuenta el orden de precedencia de los operadores en la condición. Corina Flores V Programa MEMI

21 Condicional Switch Cuando en una condición existen diversas posibilidades nos vemos obligados a utilizar if anidados, lo que complica la realización y depuración del código. Para facilitar esta situación se tiene la condicional switch que permite definir un número ilimitado de ramas basadas en una misma condición. Corina Flores V Programa MEMI

22 Selección … concatenación
switch (condición) { case literal1: instrucciones; break; case literal2: default bloque; } cond Caso1 Caso2 CasoN Corina Flores V Programa MEMI

23 Condicional Switch La condición, puede ser una expresión, siendo ésta ya sea una fórmula, una variable, un valor El literal, se refiere a los valores explícitos que se pueden definir como: 100, a, - Corina Flores V Programa MEMI

24 switch … ejemplo public class Switch{
public static void main (String [] args) { char letra='p'; switch(letra) { case 'a': case 'A': System.out.println("Es la vocal a, que viene de Araña"); break; case 'e': case 'E': System.out.println("Es la vocal e, que viene de Elefante\n"); break; . . . default: System.out.println("Es una consonante\n"); } // switch } // main } Corina Flores V Programa MEMI

25 ERRORES Comunes En la Condicional se declaren tipos no permitidos (solo se permite char, int, byte, short) Omitir la sentencia break trae como consecuencia, ejecutar el siguiente case. Corina Flores V Programa MEMI

26 Iteración Existen dos tipos de estructuras de control que permiten realizar iteraciones o repetición de instrucciones. Estas son: Sentencia FOR Sentencia While Corina Flores V Programa MEMI

27 Sentencia while Nos permite repetir una serie de instrucciones mientras se cumpla la condición de continuidad. Es recomendable utilizar cuando no conocemos a priori (de antemano) el número de iteraciones que deseamos realizar. Corina Flores V Programa MEMI

28 Sentencia while Inicialización de variable de control;
while (condición) { bloque // actualizar variable de control } Variable de control, es la variable que sirve para llevar el control de las repeticiones. Inicializacion V cond bloque F Corina Flores V Programa MEMI

29 Sentencia while … ejemplo
public class Sentencia_While { public static void main(String [] args) int i = 20; System.out.println( " --- Lista de numeros pares en orden decreciente---"); while (i!= 0) System.out.println( " i = " +i); i = i - 2; } Corina Flores V Programa MEMI

30 ERRORES Comunes Olvidar actualizar la variable de control en el cuerpo de la sentencia while. Lo que genera un ciclo infinito Corina Flores V Programa MEMI

31 Sentencia For Cuando se desea ejecutar un grupo de instrucciones un número determinado de veces, es mejor utilizar la sentencia for. Corina Flores V Programa MEMI

32 Sentencia For V cond bloque F
for (inicialización; condición; expresión) { bloque } 1 2 4 3 V inicialización, de la variable de control condición, es la que determina si seguir o parar la repeticion expresión, es aquella en la que el valor de la variable de control se actualiza cond bloque F (Primera vez) Orden de ejecución: 1 2 3 4 Orden de ejecución: (Segunda vez) 2 3 4 Corina Flores V Programa MEMI

33 Sentencia for … ejemplo
public class Sentencia_for { public static void main(String [] args) System.out.println(" Genera una lista de valores multiplos de 5"); for (int i = 0; i <= 5; i++) System.out.print( " " +i*5); } Corina Flores V Programa MEMI

34 Equivalencia La sentencia for y while son equivalentes entre sí, esto significa que: una sentencia for puede ser representada también mediante una sentencia while y viceversa. Corina Flores V Programa MEMI

35 Equivalencia for (int j =10; j>1; j--) System.out.println(“ Valor de j : “); De forma equivalente se puede representar aplicando while int j =10; while (j>1) { System.out.println(“ Valor de j : “); j = j--; } Corina Flores V Programa MEMI

36 Sentencia for-each Para recorrer sobre colecciones
Hace un recorrido sobre todos los elementos que guarda la colección Corina Flores V Programa MEMI

37 Sentencia for-each public void mostrarForEach(){
import java.util.*; public class For_ForEach_Iterator_While { ArrayList<String> lista; public For_ForEach_Iterator_While() { lista = new ArrayList<String>(); } public void anadir(){ lista.add("Lunes"); lista.add("Martes"); lista.add("Miercoles"); lista.add("Jueves"); lista.add("Viernes"); lista.add("Sabado"); lista.add("Domingo"); } public void mostrarForEach(){ System.out.println("Listamos con ForEach"); for (String dia: lista) System.out.println("Dia: " + dia); } Corina Flores V Programa MEMI

38 Uso de Iterator Para recorrer sobre colecciones
Hace un recorrido sobre todos los elementos que guarda la colección Hace uso de while y de métodos como: hasNext y next Corina Flores V Programa MEMI

39 Uso de Iterator El ejemplo toma la colección de nombre lista detallada en el ejemplo anterior con for-each. public void mostrarIterator(){ System.out.println("Listamos con Iterator"); Iterator <String> it = lista.iterator(); while (it.hasNext()) { String dia = it.next(); System.out.println(dia); } Corina Flores V Programa MEMI


Descargar ppt "Estructuras de Control"

Presentaciones similares


Anuncios Google