Estructuras de Control
Estructuras de Control
Arturo Florian Herencia
Taller de Programación
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”.
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.
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 (Estructura Secuencial o Lineal).
Introducción
◼ Lo que significa …
◼ Pensar en un sentido muy restringido, ya
que obligan a mantener una secuencia
para su ejecución(Secuencial o Lineal).
◼ Sin embargo, … también hay necesidad de
que durante la ejecución del programa el
orden de ejecución de las instrucciones
sean alteradas.
Estructuras de Control
◼ Las estructuras de control tienen una
finalidad bastante concreta: señalar el orden
en que tienen que sucederse o ejecutarse los
pasos de un algoritmo o instrucciones en un
programa(tomando rutas alternativas o
realizando saltos o desviaciones).
◼ Existen:
◼ Secuenciales
◼ Pueden ser de: Selección e Iterativas
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.
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
}
}
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 condicional)
◼ Repetir un conjunto de instrucciones
(Iteración)
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
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.
Selección
◼ La sentencia if, se puede emplear de
diferentes maneras:
◼ A) Simple
◼ B) Doble
◼ C) Anidada
Al finalizar este tema, el estudiante será capaz de elaborar programas
con la Estructura selectiva Condicional Simple y doble, aplicando
diversas técnicas, para así brindar soluciones a diversas situaciones
reales.
Sentencias
condicionales
❑ Si un programa no fuera más que una lista de
órdenes a ejecutar de forma secuencial, una por
una, no tendría mucha utilidad.
❑ Los condicionales nos permiten comprobar
condiciones y hacer que nuestro programa se
comporte de una forma u otra, que ejecute un
fragmento de código u otro, dependiendo de esta
condición
Estructura de control
if
Sentencia condicional (Si) para una
sola sentencia
if
Sintaxis Ejemplo:
if (condicion) if ( sueldo >1000)
sentencia; bonificacion=120;
Sentencia condicional (Si) para un
bloque de sentencias
if
Sintaxis
If (condicion )
If (categoria==1)
{
sentencia1; {
sentencia2; cargo= “Empleado”;
sentencia3; sueldo= 1800;
. bonificacion= 0.15;
.
Dsctoafp=(12.5/100);
.
}
sentenciaN;
}
Selección … simple (if)
if (condición)
V
instrucción; cond
X=12;
F
if (condición) {
bloque;
}
Condición, es una
expresión booleana
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);
}
}
}
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 crear sentencias
if dobles (if-else) que tienen 2
bloques de instrucciones.
Selección … concatenación
if (condición) { F V
bloque1 cond
} bloque2 bloque1
else {
bloque2
}
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);
}
}
}
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");
}
}
ERRORES Comunes
◼ Olvidar los () en la condición
◼ Confundir el operador de comparació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.
GRACIAS