Anda di halaman 1dari 39

Estructuras de Control

Corina Flores Villarroel


UMSS - Programa MEMI

Corina Flores V Programa MEMI


Introduccin
Recordemos 1. Bloque de declaraciones

Un programa se define: Su misin consiste en indicar


al procesador que reserve
espacio en la memoria para
Secuencia de instrucciones una constante, variable u
lgicamente ordenadas que objeto del programa, indicando
pueden ser ejecutadas en una asimismo su tipo y nombre.
computadora.

Corina Flores V Programa MEMI


Introduccin
Recordemos 2. Bloque de instrucciones
Constitudo por un conjunto de operaciones
y la secuencia de instrucciones que se han
Un programa se define:
de realizar para la obtencin de los
resultados deseados. Dentro de ste bloque
Secuencia de instrucciones se diferencian tres partes fundamentales:
lgicamente ordenadas que
pueden ser ejecutadas en una (a) Entrada de datos: instrucciones que toman
datos de un dispositivo externo.
computadora.
(b) Proceso: instrucciones que
modican/procesan los datos.

(c) Salida de resultados: instrucciones que


toman los datos nales de la memoria
central y los enva a dispositivos externos.

Corina Flores V Programa MEMI


Introduccin
Recordemos

Esto nos d la idea de que las


instrucciones estan ordenadas de tal
manera que una est a continuacin de la
otra.

Corina Flores V Programa MEMI


Introduccin
Lo que significa
Pensar en un sentido muy restringido, ya
que obligan a mantener una secuencia
para su ejecucin.

Sin embargo, tambin hay necesidad de


que durante la ejecucin del programa el
orden de ejecucin de las instrucciones
sean alteradas.

Corina Flores V Programa MEMI


Estructuras de Control
Las estructuras de control tienen una
nalidad bastante denida: sealar el orden
en que tienen que sucederse o ejecutarse los
pasos de un algoritmo o instrucciones en un
programa.

Existen:
Secuenciales,
Pueden ser de: Seleccin e Iterativas

Corina Flores V Programa MEMI


Secuenciales
Como ya se haba indicado son
estructuras que obedecen la linealidad, es
decir, no admiten saltos

1. A la ejecucin de una instruccin le sigue


otra o la siguiente instruccin y as
sucesivamente.

2. Mantiene la secuencia de acciones en el


orden en el que aparecen las instrucciones.

Corina Flores V Programa MEMI


Secuenciales ejemplo
public class Secuencial int x;
{
public static void main(String [] args) int y;
{
int x;
x = 10;
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);
System.out
}
}
Corina Flores V Programa MEMI
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 (Seleccin) y/o

Repetir un conjunto de instrucciones


(Iteracin)

Corina Flores V Programa MEMI


Seleccin
La sentencia de seleccin IF, permite tomar
decisiones en base a una condicin lgica.
Luego decide qu suceder en funcin al
resultado. A esta sentencia tambin se
conoce como:

Seleccin
Condicional
De decisin

Corina Flores V Programa MEMI


Seleccin
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 accin del programa.

El programador debe escribir el cdigo para


las dos posibilidades (s y no), aunque
cuando el programa est funcionando, slo
se elegir una.
Corina Flores V Programa MEMI
Seleccin
La sentencia IF, se puede emplear de
diferentes maneras:

A) Simple
B) Concatenada
C) Anidada

Corina Flores V Programa MEMI


Seleccin simple (if)
if (condicin)
V
instruccin cond

int x;
F
if (condicin) {
bloque
}

Condicin, es una
expresin booleana

Corina Flores V Programa MEMI


Seleccin 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
Seleccin simple (if)
Pero no siempre el resultado de la
condicin es verdadera, entonces
hay necesidad de incluir la clusula
else en caso de que el resultado sea
falso.
Entonces podemos concatenar
sentencias if

Corina Flores V Programa MEMI


Seleccin concatenacin
if (condicin) { F V
bloque cond
}
else {
bloque
}

Corina Flores V Programa MEMI


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
Seleccin anidacin
if (condicin1) { F V
if (condicin2) {
cond
F V
bloque1 cond
}
else {
bloque2
} F V
cond
}
else {
if (condicin3) {
bloque3
}
else {
bloque4
}
} Corina Flores V Programa MEMI
Seleccin 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");
else
System.out.println("Juan es mayor que Jose");
}
} Corina Flores V Programa MEMI
ERRORES Comunes
Olvidar los () en la condicin
Confundir el operador relacin ==
con el de asignacin =
Colocar mal los if anidados
No tener en cuenta el orden de
precedencia de los operadores en la
condicin.

Corina Flores V Programa MEMI


Condicional Switch
Cuando en una condicin existen diversas
posibilidades nos vemos obligados a
utilizar if anidados, lo que complica la
realizacin y depuracin del cdigo.

Para facilitar esta situacin se tiene la


condicional switch que permite definir un
nmero ilimitado de ramas basadas en una
misma condicin.

Corina Flores V Programa MEMI


Seleccin concatenacin
switch (condicin) {
case literal1:
cond
instrucciones;
break;
case literal2: Caso1 Caso2 CasoN
instrucciones;
break;

default
bloque;
}

Corina Flores V Programa MEMI


Condicional Switch
La condicin, puede ser una
expresin, siendo sta ya sea una
frmula, una variable, un valor

El literal, se refiere a los valores


explcitos que se pueden definir
como: 100, a, -

Corina Flores V Programa MEMI


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 Araa");
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
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


Iteracin
Existen dos tipos de estructuras de
control que permiten realizar
iteraciones o repeticin de
instrucciones. Estas son:

Sentencia FOR

Sentencia While

Corina Flores V Programa MEMI


Sentencia while
Nos permite repetir una serie de
instrucciones mientras se cumpla
la condicin de continuidad.

Es recomendable utilizar cuando no


conocemos a priori (de antemano)
el nmero de iteraciones que
deseamos realizar.

Corina Flores V Programa MEMI


Sentencia while
Inicializacin de variable de
control;
Inicializacion
while (condicin) {
bloque
V
// actualizar variable cond
de control
} bloque
F

Variable de control, es la
variable que sirve para
llevar el control de las
repeticiones.
Corina Flores V Programa MEMI
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


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


Sentencia For
Cuando se desea ejecutar un grupo
de instrucciones un nmero
determinado de veces, es mejor
utilizar la sentencia for.

Corina Flores V Programa MEMI


Sentencia For
for (inicializacin; condicin; expresin)
{ 1 2 4
bloque
} 3
V
inicializacin, de la variable de control cond
condicin, es la que determina si
seguir o parar la repeticion bloque
F
expresin, es aquella en la que el
valor de la variable de
control se actualiza

Orden de ejecucin: 1 (Primera vez)


2 3 4
Orden de ejecucin: 2 3 4 (Segunda vez)
Corina Flores V Programa MEMI
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


Equivalencia
La sentencia for y while son
equivalentes entre s, esto significa
que:
una sentencia for puede ser
representada tambin mediante una
sentencia while y viceversa.

Corina Flores V Programa MEMI


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


Sentencia for-each
Para recorrer sobre colecciones

Hace un recorrido sobre todos los


elementos que guarda la coleccin

Corina Flores V Programa MEMI


Sentencia for-each
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


Uso de Iterator
Para recorrer sobre colecciones

Hace un recorrido sobre todos los


elementos que guarda la coleccin

Hace uso de while y de mtodos


como: hasNext y next

Corina Flores V Programa MEMI


Uso de Iterator
El ejemplo toma la coleccin 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

Anda mungkin juga menyukai