viernes, 7 de febrero de 2014

Estructuras de control (y II)

Estructuras de control

Estructuras de repetición o iterativas.
Las estructuras de repetición o iterativas son utilizadas cuando una o más sentencias deben ser repetidas 0, 1 o “n” veces.

¡OJO!
Ten cuidado con los bucles infinitos (son aquellos en los que la condición para salir del bucle nunca se cumple). En caso de producirse un bucle infinito el programa se seguirá ejecutando y se quedará “colgado” hasta que el usuario mate el proceso.

While
Cuando usamos el bucle while la condición se comprueba al principio del bucle, por lo que las sentencias que se encuentren dentro de él pueden ser ejecutadas entre 0 y “n” veces.
Las instrucciones se repetiran mientras se cumpla la condición dada en el while.
La ejecución de un bucle while sigue esta estructura:
  1. Evalúa si la condición es cierta o no.
  2. En caso de que sea “false” no se ejecutan las instrucciones de su interior y el programa sigue omitiendo la parte interior del while.
  3. En caso de que la condición sea “true” se ejecutan las instrucciones que contiene el while y se vuelve al paso 1.

Do While
En este caso, a diferencia del while, la condición se comprueba al final del bucle, por lo que las sentencias se ejecutan al menos una vez.
La ejecución de un bucle Do While sigue la siguiente estructura:
  1. Se ejecutan las instrucciones contenidas en el Do.
  2. Se evalúa si la condición es cierta o no.
  3. Si el resultado resulta ser “false” se ejecutan las instrucciones que continúan a partir de la condición del while.
  4. En caso de que el resultado sea “true” se vuelve al paso 1.

For
El bucle for se utiliza cuando es necesario repetir las instrucciones un número fijo y conocido de veces. Las instrucciones se repetirán mientras se cumpla la condición marcada.
La estructura de un bucle for en Java es la siguiente:
    for(inicialización; condicion; incremento/decremento){
        instrucción 1;
        …..
        instrucción n;
    }

Después del for, entre paréntesis, debe haber siempre 3 partes separadas por punto y coma:
  1. Inicialización: Es la parte en la que la variable o variables de control toman el valor inicial. Puede haber una o más instrucciones en la inicialización separadas por comas. Solo se inicializa una vez.
  2. Condición: Es una expresión booleana que hace que se ejecuten o no las sentencias que están dentro del for. Mientras sea “true” se ejecutarán, cuando sea “false” se saldrá del bucle. Generalmente en la condición se compara la variable de control con un valor límite.
  3. Incremento/decremento: Es una expresión que incrementa o decrementa la variable de control del bucle.

La ejecución de un bucle for sigue la siguiente estructura:
  1. Se inicializa la variable o variables de control (inicialización).
  2. Se evalúa la condición.
  3. Si el resultado resulta ser “false” se ejecutan las instrucciones que continúan a partir de la condición del for.
  4. Si la condición es “true” se ejecutan las sentencias contenidas en el for.
  5. Se actualiza la variable o variables de control.
  6. De vuelta al punto 2.

miércoles, 5 de febrero de 2014

Estructuras de control en Java (I)

Estructuras de control en Java

En java tenemos distintas estructuras para controlar el flujo del programa, esto es, los distintos caminos que va tomando la ejecución de las sentencias y como lo hace.

Secuencial.
Es la forma normal en la que se ejecuta un programa. Las instrucciones se ejecutan una tras otra, sin saltos ni repeticiones.
Cada instrucción está separada de las demás por un “;” al final de la línea.

Condicional, alternativa o selectiva.

IF
En java hay tres tipos de estructuras if
  1. IF
Esta es una estructura de control condicional, esto quiere decir que en el caso de que se cumpla la condición que se le ha dado, en caso de que sea “true” se ejecutará el código que hay tras el IF.

  1. IF ELSE
Esta estructura de control es alternativa, esto quiere decir que si se cumple la condición marcada ejecutará el código tras el IF y si no se cumple ejecutara el que esté tras el ELSE.

  1. IF ELSE IF ELSE
Por último, el IF ELSE IF ELSE es una estructura selectiva. Consiste en anidar varios IF ELSE uno dentro de otro, así dentro del ELSE colocaremos un IF, por lo que podremos jugar con muchas opciones para que se ejecute uno u otro código.


SWITCH
Cuando una expresión puede tener varios valores y dependiendo del valor que tome se debe ejecutar un código u otro hay 2 formas de resolver el problema. Se puede hacer anidando IF ELSE hasta que hayamos cubierto todas las opciones o se puede utilizar SWITCH. El uso del SWITCH deja un código limpio y fácil de interpretar.

lunes, 3 de febrero de 2014

Puertas lógicas correspondientes a los operadores lógicos de Java

Puertas lógicas correspondientes a los operadores lógicos de JAVA

Cada operador lógico en Java tiene su correspondiente puerta lógica. Las puertas lógicas son dispositivos electrónicos que ofrecen resultados basados en la lógica booleana. Vamos a ver qué puertas lógicas utilizan nuestros operadores lógicos.

AND
En el caso de la puerta AND, solo tendremos una señal de salida (S) si se activan todas las señales de entrada (A, B). Esta puerta correspondería al producto lógico A·B=S y tiene el siguiente esquema y símbolos:
Y su correspondiente tabla de la verdad es:

A
B
S
0
0
0
0
1
0
1
0
0
1
1
1





OR
En la puerta OR, tendremos una señal de salida (S) siempre que se active alguna de las señales de entrada (A, B). Esta puerta correspondería a la suma lógica A+B=S y tiene el siguiente esquema y símbolos:
Y su correspondiente tabla de la verdad es:

A
B
S
0
0
0
0
1
1
1
0
1
1
1
1




NOT
Con esta puerta lógica sólo obtendremos una señal a la salida si no tenemos señal a la entrada. Esta puerta equivale a la negación o inversión S=A´ y tiene el siguiente esquema y símbolos.
Y su correspondiente tabla de la verdad es:

A
S
0
1
1
0

sábado, 1 de febrero de 2014

Operadores Lógicos

Operadores lógicos en JAVA


Java cuenta también con 6 operadores lógicos, también llamados booleanos. Estos son:


Como podemos ver tenemos 2 formas distintas de utilizar el AND y el OR, pero ¿A qué se debe esto? Pues bien, estos dos operadores se comportan prácticamente igual, de hecho tienen hasta la misma tabla de la verdad, pero existe una pequeña diferencia entre ellas.

  1. && y || → Evalúan el primer operando y en caso de que sea suficiente para, en el caso del OR dar por cierta la comparación y en el caso del AND negarla, no seguirá y por tanto no evaluará el segundo término.
  2. & y | → Estos siempre evaluarán ambos operandos, sea cual sea el resultado de la primera evaluación.