Estructuras de Control JAVA
Estructuras de Control JAVA
if … else if … else
switch (…) {case … break; … default … break;}
do { … } while (…)
while (…) { … }
for (){ … }
if (condicion)
acciones1;
else
acciones2;
donde acciones1 y acciones2 pueden ser una sentencia o más de una entre llaves. Si se
el resultado de evaluar la condición es verdadero se ejecuta acciones1, en caso contrario
se ejecuta acciones2. Ejemplo:
En el siguiente programa se realiza una lectura desde teclado, para ello se utiliza
la clase Scanner que permite leer datos de la fuente que se envíe como argumento al
constructor, en este caso el objeto System.in, que representa el teclado a nivel de
consola. Para usar esta clase hay que importar el paquete java.util.
Con la sentencia int talla=sc.nextInt(); lee un entero en el flujo del teclado
import java.util.*;
public class SiEntonces{
1
Programacion. Java Estructuras de control
Java admite para la sentencia condicional la sintaxis de los operadores “?” y “:”
a=(c<d)?c*2:27; equivalente a
if (c<d)
a=c*2;
else a=27;
if (condicion1)
acciones1;
else if (condicion29
acciones2;
else if (condicion3)
acciones3;
else
acciones4;
Ejemplo:
import java.util.*;
2
Programacion. Java Estructuras de control
Sentencia de selección,
switch (expresion) {
[case valor_var_expres: acciones1;
break;}
{case valor_var_expres: acciones2;
break;}
….................................................
[default: acciones n;]
Se ejecutará el bloque case que coincida con el valor que se obtenga al evaluar la
expresión. Si no coincide ningún bloque case se ejecuta el bloque default. Todo bloque
debe de terminar con break, para que termine la sentencia (produce el salto a llave de
cierre de la sentencia switch); si a un bloque case no se le pone el break la ejecución
continuaría por el siguiente case o por default.
import java.util.*;
public class DiasDeCadaMes{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("Introduce el numero del mes");
short mes = sc.nextShort();
switch(mes) {
3
Programacion. Java Estructuras de control
En la versión 7 se puede utilizar una variable de tipo String para discriminar el bloque a
ejecutar.
4
Programacion. Java Estructuras de control
for(exp_inicio, expresión_fin;exp_incremento){
[bloque sentencias ]
}
Cuando el bloque de sentencias está formado por una sola sentencia se puede omitir las llaves
En el siguiente ejemplo convertimos pesetas en euros, de 25 en 25 ptas hasta llegar a 200.
Las mascarillas dan forma a los datos de consola, en este caso se utiliza %5.2f. El
símbolo % indica que se trata de una mascarilla, f que es un float, el número de la izquierda el
número mínimo de caracteres de consola y el de la derecha el número de decimales.
En el siguiente ejemplo vemos como se pueden anidar esta estructura:
Nota: Cuando existe algún contador del número de veces que se tiene que repetir la estructura se
usa for, si es una expresión lógica la que determina el número de repeticiones se usa do-while o
while. Aunque todo lo que se representa con un for se puede pasar a while.
5
Programacion. Java Estructuras de control
Bloque repetitivo condicionado en el que se ejecuta el bloque de sentencias al menos una vez,
aunque no se cumpla la condición de control, debido a que la expresión lógica del bucle se
evalúa al final Sintaxis:
do{
[bloque sentencias]
While (expr_logica)
import java.util.*;
public class DoWhile{
public static void main(String args[]){
long aux;
long factorial = 1;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un numero entero");
long numero = sc.nextLong();
aux=numero;
do{
6
Programacion. Java Estructuras de control
factorial *= aux;
aux--;
}while(aux > 0);
System.out.print("El factorial de: "+numero);
if(numero > 0 && numero < 25)
System.out.println(" es: "+factorial);
else if(numero == 0)
System.out.print("El factorial es 0");
else
System.out.println(" no se puede calcular");
}
}
Sentencia condicionada, que se repite mientras la condición sea verdadera ( se puede repetir de
o a n veces; la anterior se repite de 1 a n veces) Sintaxis:
do (condición){
[bloque sentencias]
}
import java.util.*;
public class While{
public static void main(String args[]){
long aux;
long factorial = 1;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un numero entero positivo");
long numero = sc.nextLong();
aux=numero;
while(aux > 0){
factorial *= aux;
aux--;
}
System.out.print("El factorial de: "+numero);
if(numero > 0 && numero < 25)
System.out.println(" es: "+factorial);
else if(numero == 0)
System.out.print("El factorial es 0");
else
System.out.println(" no se puede calcular");
}
}
7
Programacion. Java Estructuras de control
bucleA:
for (j=1;j>100; j++){
do{
if (condiciona)
break bucleA;
if condiciónB)
break;
while (condicionC);
}