Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué aprenderás?
•
•
Desarrollar programas informáticos utilizando estructuras de control de flujo.
F P
•
Comentar y documentar adecuadamente los programas.
Revisar y corregir los errores que puedan aparecer. I A
N K
LI
¿Sabías que…?
N O
• U M
Se considera que el primer virus informático fue creado en 1983 por Fred
AL
Cohen para probar que era algo posible que un programa hiciera copias
del mismo y se transfiriera a otros ordenadores.
•
• L E
Existen más de 698 lenguajes de programación distintos.
Los programadores dedican aproximadamente el 30% del tiempo
navegando entre su código.
IB
•
M
Se considera que el término debug se generó cuando el almirante Grace
I
Murray encontró una polilla atrapada en un relé impidiendo las
debugging. P R
operaciones de una computadora. Al quitar la polilla se hizo un
IM
N
I Ó
R S
VE
Informática. Programación I
Tema 2. Estructuras básicas de control
1. Introducción
Las estructuras de control nos permiten alterar el flujo de ejecución de un programa para
que un bloque de código pueda o no ejecutarse, se repita múltiples veces, deje de
ejecutarse o se ejecute solo si se detecta algún error.
F P
I A
de otras estructuras.
N K
Siempre podemos anidar estructuras de control definiendo estructuras dentro de bloques
LI
2. Estructuras de Selección N O
U M
AL
Las estructuras de selección nos permiten delimitar un bloque de código que se va a
ejecutar o no según un valor.
L E
2.1. If
IB
I M
P R
Nos permite ejecutar o no un bloque de código según el resultado de evaluar una
expresión booleana. Su sintaxis es:
IM
if( ){ …. }
Entre los paréntesis indicaremos la expresión que se ha de cumplir para ejecutar el bloque
N
definido entre las llaves.
I Ó
Por ejemplo, el siguiente código solo mostrará el mensaje “Es igual a 3” cuando el
S
resultado de la operación numero==3 genere un valor true.
R
V E int numero=3;
if(numero==3){
System.out.println("Es igual a 3");
}
2
Informática. Programación I
Tema 2. Estructuras básicas de control
2.1.1. If/else
int numero=3;
if(numero==3){
System.out.println("Es igual a 3");
}else{
}
System.out.println("Es distinto a 3");
F P
I A
K
Podemos anidar estructuras de selección sin problema, pero hemos de recordar que las
N
LI
variables solo están disponibles dentro de los bloques de código en los que se han definido.
int numero=3;
if(numero==3){
N O
System.out.println("Es igual a 3");
}else{
U M
AL
if(numero==4){
System.out.println("Es igual a 4");
}
}
L E
I B
2.1.2 Else if I M
P R
Para facilitar el uso de if/else de forma anidada, podemos utilizar la estructura }else if(){}
IM
N
I Ó
R S int numero=3;
if(numero==3){
3
Informática. Programación I
Tema 2. Estructuras básicas de control
La estructura Switch/Case nos permite comparar una variable con distintos valores y
definir un bloque de código para que se ejecute en el caso que la variable sea igual a un
valor. Después de ejecutar uno de los casos automáticamente se ejecutará el código del
siguiente caso a no ser que se encuentre con un break;
La sintaxis se compone de:
• switch(valorComparar){ } en donde se define la variable a comparar. Limita el
bloque de código que contendrá los distintos casos a comparar.
• case opcion1: contiene el código a ejecutar cuando el valorCompara sea igual a
opcion1.
F P
A
• break; sentencia opcional que evita se siga ejecutando el contenido del siguiente
I
case.
• default: contiene el código a ejecutar cuando no se cumpla ningún case.
N K
LI
El siguiente ejemplo mostrará el mensaje “Hola”. Si la variable opción tuviera el valor
ningún break.
N O
“despedir” mostraría los valores “Ádios”, “Ánimos” y “mensaje por defecto” porque no hay
U M
AL
L E
I
String opcion="saludar";B
switch(opcion){
I
case "saludar": M
P
break;
R
System.out.println("Hola !");
IM
case "despedir":
N System.out.println("Adios !");
I Ó
R S case "animar":
System.out.println("Ánimos !");
VE default:
System.out.println("mensaje por defecto");
}
4
Informática. Programación I
Tema 2. Estructuras básicas de control
3. Estructuras de repetición
F P
3.1. Estructura While
I A
N K
LI
Su sintaxis es: while( condición ){ …. }
Entre los paréntesis indicaremos la condición que se ha de cumplir para ejecutar el bloque
N O
definido entre las llaves. Una vez ejecutado se volverá a evaluar la expresión de nuevo para
ver si se tiene que volver a ejecutar. Éste proceso se repetirá mientras que la expresión siga
siendo válida. El código que altere la condición para finalizar el bucle se ha de escribir
dentro del bloque de código que queremos repetir.
U M
AL
El siguiente ejemplo mostrará por consola los mensajes:
El valor de numero es 0
El valor de numero es 1
El valor de numero es 2
L E
int numero=0; I B
while(numero < 3){
I M
P R
//bloque de código a repetir
System.out.println("El valor de número es:"+numero);
} IM
numero++; //operación que altera la condición para que finalice el bucle
N
I Ó
Las condiciones que especificamos entre los paréntesis en la declaración de un bucle
S
siempre van a tener que retornar un true o false.
R
V E Hay que tener presente siempre que es necesario alterar la condición para finalizar el
bucle. El siguiente ejemplo creará un bucle infinito que nunca va a terminar:
while(true){
//bloque de código a repetir infinitamente
}
5
Informática. Programación I
Tema 2. Estructuras básicas de control
3.2. For
Su sintaxis es:
For( variableCondicion; condición ; operación que altere la variableCondicion ){ …. }
Un bucle For nos permite iniciar en su definición la variable que utilizaremos para controlar
el bucle, definir la condición para volver a repetir el bloque de código y escribir la operación
que altere la condición para finalizar el bucle.
La gran diferencia respecto al bucle While, es que la variable usada para controlar el bucle
se define dentro del mismo For y no estará disponible una vez finalizado el bucle.
El siguiente ejemplo mostrará por consola los mensajes:
F P
El valor de número es 0
El valor de número es 1 I A
El valor de número es 2
N K
for(int numero=0; numero < 3; numero++){ LI
//bloque de código a repetir
N O
System.out.println("El valor de número es:"+numero);
}
U M
3.3. Do / While AL
L E
Su sintaxis es: do{ …. } IB
I M
while(condición);
P R
Un bucle Do While ejecuta el bloque de código que define y después evalúa la condición
IM
para ver si se ha de volver a ejecutar o no.
La gran diferencia con las anteriores estructuras de repetición es que el bloque de código
N
que contiene como mínimo se ejecuta una vez.
I Ó
R S
El siguiente ejemplo mostrará por consola el mensaje:
El valor de número es 0
VE int numero=0;
do{
//bloque de código a repetir
System.out.println("El valor de número es:"+numero);
}while(numero != 0);
6
Informática. Programación I
Tema 2. Estructuras básicas de control
4. Estructuras de salto
Las estructuras de salto son sentencias que alteran el flujo de ejecución de un programa
dentro de un bloque de código.
4.1. Break
}
numero++;
L E
I B
I M
4.2. Continue
P R
IM
La sentencia continue; solo se puede utilizar dentro de una estructura de control de flujo
N
de repetición. Provoca que se ignore el resto de código dentro del bloque a repetir y que
I Ó
vuelva a evaluarse la condición del bucle.
R S
El siguiente ejemplo mostrará por consola los mensajes:
El valor de número es 0
V E El valor de número es 2
int numero=0;
while (numero < 3) {
if (numero == 1) {
//es muy importante modificar la variable de control antes del continue
numero++;
continue;
}
System.out.println("El valor de número es:" + numero);
numero++;
} 7
Informática. Programación I
Tema 2. Estructuras básicas de control
4.3. Return
I M
intentamos dividir un número entre 0? . Éstas y muchas otras operaciones pueden producir
PR
errores inesperados durante el flujo de ejecución de nuestro programa. El control de
excepciones nos va a permitir controlar la ejecución de un bloque de código e indicar qué
código queremos que se ejecute si se produce un error.
IM
Como a quizás queramos actuar distinto según el tipo de error, el control de excepciones
N
nos ofrece también la posibilidad de ejecutar distinto código según el error encontrado.
I Ó
Su sintaxis es: try { …… }
catch(TipoDeExcepcion e){ ... }
R S catch(OtroTipoDeExcepcion e){ … }
finally{ … }
VE La palabra clave Try precede el bloque de código que vamos a controlar. El bloque de
código de cada catch contendrá el código a ejecutar según el error definido dentro de sus
paréntesis. El bloque de código de finally se ejecutará siempre que se produzca un error
independientemente del tipo de error.
8
Informática. Programación I
Tema 2. Estructuras básicas de control
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
} L E
System.out.println("Se ha producido algún error");
}
IB
}
I M
P R
5. Depuración de erroresIM
N
I Ó
R S
Una de las principales tareas que deberemos realizar como programadores es aprender a
conocer, depurar y arreglar errores, pues lo más normal va a ser que nuestros programas
V E
no funcionen nunca a la primera.
Normalmente nos encontraremos con 2 tipos de errores: errores sintáctico/gramaticales o
errores lógicos.
9
Informática. Programación I
Tema 2. Estructuras básicas de control
Los errores lógicos son aquellos que provocan que la aplicación no haga lo que nosotros
queremos. Suelen ser más complejos de solucionar y deberemos ver y entender cómo se
va desarrollando el flujo de ejecución de nuestro programa para poder solucionarlos.
Una técnica consiste en ir imprimiendo valores y variables para ver cómo van evolucionado
y poder comprender así donde está el error.
La forma más concisa es utilizar el “Debug” de nuestro programa para poder ir viendo
cómo evolucionan las distintas variables y qué código se va ejecutando.
F P
I A
N K
LI
N O
U M
AL
L E
B
Vídeo: DepuracionErrores : Depuración de errores con NetBeans
I
I M
P R
IM
N
I Ó
R S
VE
10
Informática. Programación I
Tema 2. Estructuras básicas de control
Recursos y enlaces
• Documentación oficial de Java: https://docs.oracle.com/en/java/javase/11/
AL
L E
IB
• I M
Repl.it : compilador online de Java: https://repl.it/repls/FamousBumpyFilename
P R
IM
N
I Ó
R
• S
CodeCombat: aprende a programar jugando: https://codecombat.com
VE
11
Informática. Programación I
Tema 2. Estructuras básicas de control
Conceptos clave
• Debuggear: depurar errores.
• Bug: un error en un programa informático.
• Flujo de un programa: líneas que va ejecutando el programa.
• Estructuras de selección: altera el flujo de un programa para ejecutar o bien unas
líneas de código u otras.
• Estructuras de repetición: altera el flujo de un programa para volver a ejecutar unas
•
líneas.
F P
líneas. I A
Estructuras de salto: altera el control de flujo saltando la ejecución de un conjunto de
•
N K
Estructuras de control de errores: altera el flujo de un programa capturando los
errores para evitar que el programa se detenga.
LI
N O
U M
AL
L E
IB
I M
P R
IM
N
I Ó
R S
VE
12
Informática. Programación I
Tema 2. Estructuras básicas de control
Test de autoevaluación
F P
¿Qué tipo de estructura de control de flujo es un switch/case?
I A
a) Selección.
N K
b) Repetición.
c) Salto.
LI
d) Control de errores.
N O
U M
AL
¿Qué tipo de estructura de control de flujo es un try/catch?
a) Selección.
b) Repetición.
L E
c) Salto.
IB
d) Control de errores.
I M
P R
Ponlo en práctica IM
N
I Ó
R S
Actividad 1
13
Informática. Programación I
Tema 2. Estructuras básicas de control
SOLUCIONARIOS
Test de autoevaluación
N K
¿Qué tipo de estructura de control de flujo es un switch/case? LI
e) Selección.
N O
f) Repetición.
g) Salto.
U M
h) Control de errores.
AL
L E
¿Qué tipo de estructura de control de flujo es un try/catch?
i) Selección. IB
j) Repetición.
I M
k) Salto.
P R
IM
l) Control de errores.
N
I Ó
R S
VE
14
Informática. Programación I
Tema 2. Estructuras básicas de control
Ponlo en práctica
Actividad 1
U M
AL
public class EjemploControlDeFlujo {
L E
String numeroEscrito = "0";
int opcion = 0; IB
I M
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
do {
P R
//bucle para volver a mostrar el menú
IM
System.out.println("Indica la opción a realizar");
System.out.println("1- muestra los números del 20 al 40 con un while");
N
System.out.println("2- muestra los número del 50 al 30 con un bucle for");
Ó
System.out.println("0- Finaliza el programa");
I
R S
VE
15
Informática. Programación I
Tema 2. Estructuras básicas de control
try {
numeroEscrito = br.readLine();
opcion = Integer.parseInt(numeroEscrito);
} catch (IOException ex) {
System.out.println("Error al intentar acceder al teclado");
}
switch (opcion) {
case 1:
// 1- muestra los números del 20 al 40 con un while
int k = 20;
while (k <= 40) { F P
System.out.println(k);
I A
}
k++;
N K
break;
case 2: LI
// 2- muestra los número del 50 al 30 con un bucle for
for (int i = 50; i >= 30; i--) { N O
}
System.out.println(i);
U M
AL
break;
}
L E
//hasta que el usuario no introduzca un 0 se ejecutará el bule
} while (opcion != 0);
IB
}
I M
}
P R
IM
N
I Ó
R S
VE
16