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.

viernes, 31 de enero de 2014

Comentarios en Java (y II)

Comentarios en JAVA


Ya conocemos dos tipos de comentarios ¿Acaso hay mas?

Pues la respuesta es "true", en Java existe un tercer tipo de comentario llamados comentarios Javadoc.
Estos comentarios tienen la característica especial de que sirven para crear la documentación del programa con solo escribirlos. Esta documentación se crea con una utilidad llamada Javadoc del Kit de desarrollo de Java SE y se nos presenta en formato HTML.


¿y como los uso?

Un comentario Javadoc se escribirá igual que un comentario multilinea, con la diferencia de que no comenzará con /*, sino con /**.
Los comentarios Javadoc tienen 2 partes bien diferenciadas:
  1. Descripción: Donde se aporta la descripción y datos importantes que facilitan la comprensión del elemento comentado.
  2. Indicación: En la segunda parte del comentario se utiliza el indicador @ con ciertas palabras clave para que el programa, a la hora de realizar la documentación, sepa correctamente que estamos describiendo.
Normalmente se coloca un comentario Javadoc al inicio del programa en el que se describe que es lo que hará el mismo, la versión de la aplicación y el autor.
Este comentario quedaría así:

/**
 * Aquí iría una descripción sobre que va a hacer nuestro programa.
 * Podemos seguir la descripción en esta linea.
 * @version 1.0, 31/01/14
 * @author Sonando Java
 */

Las palabras reservadas para los indicadores son:
  • @author nombreDelAutor descripción --> Indica quién escribió el código al que se refiere el comentario. Si son varias personas se escriben los nombres separados por comas o se repite el indicador, según se prefiera. Es normal incluir este indicador en el comentario de la clase y no repetirlo para cada método, a no ser que algún método haya sido escrito por otra persona.
  • @version númeroVersión descripción --> Si se quiere indicar la versión. Normalmente se usa para clases, pero en ocasiones también para métodos.
  • @param nombreParámetro descripción --> Para describir un parámetro de un método.
  • @return descripción --> Describe el valor de salida de un método.
  • @see nombre descripción --> Cuando el trozo de código comentado se encuentra relacionada con otra clase o método, cuyo nombre se indica en nombre.
  • @throws nombreClaseExcepción descripción --> Cuando un método puede lanzar una excepción ("romperse" si se da alguna circunstancia) se indica así.
  • @deprecated descripción --> Indica que el método (es más raro encontrarlos para una clase) ya no se usa y se ha sustituido por otro.

jueves, 30 de enero de 2014

Operadores aritméticos en Java

Operadores aritméticos en JAVA

Java cuenta con 5 operadores aritméticos tanto para números enteros como en coma flotante. Estos son:


miércoles, 29 de enero de 2014

Tipos de datos simples en Java

Tipos de datos simples

Los tipos de datos generalmente se utilizan al declarar las variables y sirven para decirle al compilador o al intérprete, de antemano, el tipo de dato que se guardará en la variable.
Los tipos de datos simples en Java son:
Tipo de dato
Información representada
Rango
Descripción
byte
Datos enteros
-128 ←→ +127
Se utilizan 8 bits (1 byte) para almacenar el dato.
short
Datos enteros
-32768 ←→ +32767
Dato de 16 bits de longitud (independientemente de la plataforma).
int
Datos enteros
-2147483648 ←→ +2147483647
Dato de 32 bits de longitud (independientemente de la plataforma).
long
Datos enteros
-9223372036854775808 ←→ +9223372036854775807
Dato de 64 bits de longitud (independientemente de la plataforma).
char
Datos enteros y caracteres
0 ←→ 65535
Este rango es para representar números en Unicode, los ASCII se representan con valores del 0 al 127.*
float
Datos con coma flotante de 32 bits
Precisión aproximada de 7 dígitos
Dato en coma flotante de 32 bits en formato IEEE 754 (1 bit de signo, 8 para el exponente y 24 para la mantisa).
double
Datos con coma flotante de 64 bits
Precisión aproximada de 16 dígitos
Dato en coma flotante de 64 bits en formato IEEE 754 (1 bit de signo, 11 para el exponente y 52 para la mantisa).
boolean
Valores booleanos
true/false
Utilizado para evaluar si el resultado de una expresión booleana es verdadero (true) o falso (false).

* ASCII es un subconjunto de caracteres Unicode.