1.6 Estructuras de control
Las estructuras de control determinan la secuencia de ejecución de las sentencias de un programa. Se dividen en 3 categorías:
- Estructura secuencial
- Estructura condicional, alternativa o selectiva
- Estructura iterativa o repetitiva
Estructura secuencial:
Las sentencias se ejecutan una detrás de otra
- {
- Instrucción 1;
- Instrucción 2;
- Instrucción 3;
- }
Estructura condicional, alternativa o selectiva:
Determina si se ejecutan unas instrucciones u otras según una condición
- Instrucción if:
- if(condicion){}
- if(condicion){}else{}
- if(condicion){}else if(){}
La condición tiene que ser una expresión booleana.
- Instrucción switch
- switch(condicion){
- case valor1:
- instrucciones;
- break;
- case valor 2:
- instrucciones;
- beak;
- default:
- instrucciones;
Primero se evalúa la condición y salta al case cuyo identificador es igual al resultado de la condición. Si ninguno de estos casos se cumple, se ejecuta el default (si existe).
Estructura iterativa o repetitiva:
Permite ejecutar de forma repetitiva un bloque de instrucciones, estas se repiten según una condición. Hay 3 ciclos repetitivos:
- Ciclo while
1. while(condicion){}
- Ciclo do-while
- do{
- codigos;
- }while(condicion);
- Ciclo for
- for(int i = 1; i <= 10; i++){
- }
Se repetira 10 veces por la condición central, 'i' irá incrementando de uno en uno (i++) hasta que sea <= 10. Solo se puede incrementar(++) o decrementar(--).
La salida de este ciclo es:
Se pueden anidar bucles:
Bucles infinitos:
Se ejecutan indefinidamente, a no ser que provoquemos su interrupcion
for(;;){}
for(;true;){}
while(true){}Se pueden anidar bucles:
- for(int i = 1; i <= 10; i++){
- for(int j = 10; j <= 2; j--){
- }
- }
Ejercicio del post anterior:
- package com.tutorial;
- public class Operadores {
- int a =4, b = 5, res;
- @SuppressWarnings("unused") //Ignora los mensajes de que la variables no esta usada
- double c = 4.5;
- double d = 8.4;
- double e = 7.4;
- if(d > e && a == 4){
- res = a+b;
- }else{
- }
- }
- }
Como veis en el código uso @SuppressWarnings("unused") esto se llama anotación y entre parentesis va el tipo de anotacion.
Una anotación es una forma de añadir metadatos al código fuente del programa disponible desde Java 5.
La anotación @SuppressWarnings esconde los avisos de eclipse. Con esta anotación podemos usar:
- all para suprimir todos los avisos
- boxing para suprimir los avisos relativos a las operaciones de empaquetado/desempaquetado
- cast para suprimir avisos relativos a las operaciones de conversión temporal
- dep-ann para suprimir avisos relativos a las anotaciones de desuso
- deprecation para suprimir avisos relativos al desuso
- fallthrough para suprimir avisos relativos a los enlaces faltantes en las sentencias switch
- finally para suprimir avisos relativos al bloque finally que retornan
- hiding para suprimir avisos relativos a locales que ocultan la variable
- incomplete-switch para suprimir avisos relativos a entradas faltantes en una sentencia switch (caso enum)
- javadoc para suprimir avisos relativos a avisos javadoc
- nls para suprimir avisos relativos a literales de serie no nls
- null para suprimir avisos relativos a análisis nulos
- rawtypes para suprimir avisos relativos al uso de tipos raw
- resource para suprimir avisos relativos al uso de recursos del tipo Closeable
- restriction para suprimir avisos relativos a la utilización de referencias en desuso o prohibidas
- serial para suprimir avisos relativos al campo serialVersionUID faltante para una clase serializable
- static-access para suprimir avisos relativos al acceso estático incorrecto
- static-method para suprimir los avisos relativos a lo métodos que podrían declararse como estáticos
- super para suprimir los avisos relativos a la alteración temporal de un método sin superinvocaciones
- synthetic-access para suprimir avisos relativos al acceso no optimizado desde clases internas
- sync-override para suprimir avisos debidos a la falta de sincronización al alterar temporalmente un método sincronizado
- unchecked para suprimir avisos relativos a operaciones no comprobadas
- unqualified-field-access para suprimir avisos relativos al acceso a campo no calificado
- unused para suprimir avisos relativos a código no utilizado y código muerto
Ejercicios:
1. Crea un bucle que se ejecute 10 veces y que imprima "Este es mi primer código: ", concatenando el valor de la variable declarada en el bucle.
NOTA: Acuérdate que una concatenación se ase así "cadena de texto"+variable,
2. ¿Para que crees que se usa el bucle while?¿y el do-while?
Cualquier duda a los comentarios.

No hay comentarios:
Publicar un comentario