Está en la página 1de 39

Estructuras de Control

ING. MA. CANDELARIA


MARTÍNEZ ALCUDIA
PRINCIPIOS DE PROGRAMACIÓN

UTSV
Introducción
 Recordemos … 1. Bloque de declaraciones

 Un programa se define: Su misión consiste en indicar


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

Corina Flores V Programa MEMI


Introducción
 Recordemos … 2. Bloque de instrucciones
Constituído por un conjunto de operaciones
y la secuencia de instrucciones que se han
 Un programa se define:
de realizar para la obtención de los
resultados deseados. Dentro de éste bloque
“Secuencia de instrucciones se diferencian tres partes fundamentales:
lógicamente ordenadas que
pueden ser ejecutadas en una (a) Entrada de datos: instrucciones que toman
datos de un dispositivo externo.
computadora”.
(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


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


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


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


Secuenciales
 Como ya se había indicado … son
estructuras que obedecen la linealidad, es
decir, no admiten saltos

1. A la ejecución de una instrucción le sigue


otra o la siguiente instrucción 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 (Selección) y/o

 Repetir un conjunto de instrucciones


(Iteración)

Corina Flores V Programa MEMI


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


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
Selección
 La sentencia IF, se puede emplear de
diferentes maneras:

 A) Simple
 B) Concatenada
 C) Anidada

Corina Flores V Programa MEMI


Selección … simple (if)
if (condición)
V
instrucción cond

int x;
F
if (condición) {
bloque
}

Condición, es una
expresión booleana

Corina Flores V Programa MEMI


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
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


Selección … concatenación
if (condición) { 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
Selección … anidación
if (condición1) { F V
if (condición2) {
cond
F V
bloque1 cond
}
else {
bloque2
} F V
cond
}
else {
if (condición3) {
bloque3
}
else {
bloque4
}
} Corina Flores V Programa MEMI
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");
else
System.out.println("Juan es mayor que Jose");
}
} Corina Flores V Programa MEMI
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


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


Selección … concatenación
switch (condición) {
case literal1:
cond
instrucciones;
break;
case literal2: Caso1 Caso2 CasoN
instrucciones; …
break;

default
bloque;
}

Corina Flores V Programa MEMI


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


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
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


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


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


Sentencia while
Inicialización de variable de
control;
Inicializacion
while (condición) {
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 número
determinado de veces, es mejor
utilizar la sentencia for.

Corina Flores V Programa MEMI


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

Orden de ejecución: 1 (Primera vez)


2 3 4
Orden de ejecución: 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 también 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 colección

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 colección

 Hace uso de while y de métodos


como: hasNext y next

Corina Flores V Programa MEMI


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

También podría gustarte