Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 2. Estructuras Básicas de Control
Tema 2. Estructuras Básicas de Control
Tema 2. Estructuras Básicas de Control
A
Tema 2. Estructuras básicas de control
¿Qué aprenderás?
¿Sabías que…?
• Se considera que el primer virus informático fue creado en 1983 por Fred
Cohen para probar que era algo posible que un programa hiciera copias
del mismo y se transfiriera a otros ordenadores.
• Existen más de 698 lenguajes de programación distintos.
• Los programadores dedican aproximadamente el 30% del tiempo
navegando entre su código.
• Se considera que el término debug se generó cuando el almirante Grace
Murray encontró una polilla atrapada en un relé impidiendo las
operaciones de una computadora. Al quitar la polilla se hizo un
debugging.
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.
2. Estructuras de Selección
2.1. If
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");
}
Podemos anidar estructuras de selección sin problema, pero hemos de recordar que las
variables solo están disponibles dentro de los bloques de código en los que se han definido.
int numero=3;
if(numero==3){
System.out.println("Es igual a 3");
}else{
if(numero==4){
System.out.println("Es igual a 4");
}
}
2.1.2 Else if
Para facilitar el uso de if/else de forma anidada, podemos utilizar la estructura }else if(){}
int numero=3;
if(numero==3){
System.out.println("Es igual a 3");
}else if(numero==4){
System.out.println("Es igual a 4");
}
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.
• break; sentencia opcional que evita se siga ejecutando el contenido del siguiente
case.
• default: contiene el código a ejecutar cuando no se cumpla ningún case.
String opcion="saludar";
switch(opcion){
case "saludar":
System.out.println("Hola !");
break;
case "despedir":
System.out.println("Adios !");
case "animar":
System.out.println("Ánimos !");
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
int numero=0;
while(numero < 3){
//bloque de código a repetir
System.out.println("El valor de número es:"+numero);
numero++; //operación que altera la condición para que finalice el bucle
}
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:
El valor de número es 0
El valor de número es 1
El valor de número es 2
3.3. Do / While
Un bucle Do While ejecuta el bloque de código que define y después evalúa la condición
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
que contiene como mínimo se ejecuta una vez.
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
4.2. Continue
La sentencia continue; solo se puede utilizar dentro de una estructura de control de flujo
de repetición. Provoca que se ignore el resto de código dentro del bloque a repetir y que
vuelva a evaluarse la condición del bucle.
El siguiente ejemplo mostrará por consola los mensajes:
El valor de número es 0
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
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;
5. Depuración de errores
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
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.
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/
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.
• Estructuras de salto: altera el control de flujo saltando la ejecución de un conjunto de
líneas.
• Estructuras de control de errores: altera el flujo de un programa capturando los
errores para evitar que el programa se detenga.
12
Informática. Programación I
Tema 2. Estructuras básicas de control
Test de autoevaluación
Ponlo en práctica
Actividad 1
13
Informática. Programación I
Tema 2. Estructuras básicas de control
SOLUCIONARIOS
Test de autoevaluación
14
Informática. Programación I
Tema 2. Estructuras básicas de control
Ponlo en práctica
Actividad 1
Solución:
import java.io.*;
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) {
System.out.println(k);
k++;
}
break;
case 2:
// 2- muestra los número del 50 al 30 con un bucle for
for (int i = 50; i >= 30; i--) {
System.out.println(i);
}
break;
}
//hasta que el usuario no introduzca un 0 se ejecutará el bule
} while (opcion != 0);
}
}
16