| NOTA IMPORTANTE:
El estudio de esta sección del tema se recomienda a personas que no conocen las estructuras típicas de programación comunes a la mayoría de lenguajes, tales como los condicionales, los bucles for, los bucles while, las sentencias de ruptura break y continue, etc. Primero se realiza una somera explicación de los operadores y expresiones que más frecuentemente se utilizan en cualquier lenguaje de programación y, a continuación, se explican las estructuras mencionadas anteriormente. Es una sección optativa. |
Una expresión es una instrucción o sentencia que devuelve un valor llamado valor de retorno y que asigna a una variable un
Ejemplo 1:
| NOTA: los listados que no tienen número de línea no son códigos completos. Sólo muestran las líneas asociadas a la explicación. |

Ejemplo 2:

Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación.
Tipos:
- Aritméticos
- De asignación
- De comparación
- Lógicos
Aritméticos
Manipulan datos numéricos. Son los siguientes:
| NOTA: se muestran algunos ejemplos del operador módulo o resto de la división entera de dos números. Debe tenerse en mente que Dividendo=(Divisor*Cociente)+Resto
Ejemplo 1: 20%7 es igual a 6 ya que 20=7*2+6 Ejemplo 2: 1%3 es igual a 1 ya que 1=3*0+1 Este operador puede aplicarse a números decimales: verificar que 75%3.5=1.5 7.5%35=7.5 7.5%3.5=0.5 |
Ejemplo 1: muestra por consola una serie de resultados asociados a cálculos sencillos realizados con los operadores aritméticos. Todos los códigos en c:\cursojava\tema2 o en jcreator_home\MyProjects\tema2 si se emplea JCreator.

Por consola:
5
1
6
1
1
| NOTA: sólo aparece la parte entera de la división por que se trabaja con dos números almacenados en variables enteras. Si se quiere obtener la división incluyendo decimales, bien el numerador o el denominador, deberían declararse como double o float. |
Ejemplo 2: se muestra el uso del operador de incremento unitario

Por consola:
Valor de x: 11
Ejemplo 3: se analiza el empleo de los operadores de incremento o decremento cuando se emplean para asignar valores a otras variables

Por consola:
Valor de x: 11
Valor de y: 10
Ejemplo 4:

Por consola:
Valor de x: 11
Valor de y: 11
De asignación
Transfieren datos de una variable a otra. Son los siguientes:
Ejemplo 1:

Por consola:
Valor de z: 8
FIN DE PROGRAMA
Ejemplo 2:

Por consola:
El valor de a es 9 y el de b es 27
FIN DE PROGRAMA
De comparación
Comparan dos datos y devuelven un valor booleano. Son los siguientes:
Ejemplo:

Por consola:
Valor de z: true
FIN DE PROGRAMA
Lógicos
Concatenan expresiones lógicas con objeto de evaluar si es cierto o falso el conjunto de las expresiones. Son los siguientes:
Ejemplo 1:

Por consola:
Valor de z: true
FIN DE PROGRAMA
Ejemplo 2:

Por consola:
Valor de z: true
FIN DE PROGRAMA
Se emplea cuando se quiere ejecutar un bloque de código siempre y cuando se cumplan una o varias condiciones. Estas condiciones devuelven un valor booleano, es decir true o false.
Sintaxis:

Ejemplo:

Por consola:
Luis es mayor de edad y puede votar.
Luis tiene 24 años.
FIN DE PROGRAMA
| NOTA 1: si el bloque de código del if tienen una sola línea de código no es necesario utilizar llave, aunque si se escribe, no da error. Lo mismo ocurre con el bloque de código alternativo |
| NOTA 2: si no se escribe el else opcional y no se cumple la condición del if, el programa continúa ejecutándose pasando a las siguientes líneas de código |
| NOTA 3: si se cambia el valor de la variable int edadLuis a 16, entonces se ejecutará el bloque de código del else. Es decir, por consola se mostrará:
Luis no es mayor de edad y no puede votar Luis tiene 16 años |
Se emplea para asignar valores a una variable en función del cumplimiento o no de una condición. Su sintaxis se basa en tres términos.
Sintaxis: los paréntesis son opcionales
algunaVariable=(condición que devuelve un valor booleano) ? (valor si devuelve true) : (valor si devuelve false)
| NOTA: los valores que se devuelven deben ser compatibles con los que admite la variable que se inicializa |
Ejemplo: en este ejemplo se muestra el funcionamiento del operador ternario y se introduce la variable referenciada String, que se utiliza para almacenar cadenas de texto. Se estudiará en profundidad más adelante.

Por consola:
Pedro es mayor de edad y puede votar
Admite tantas condiciones como necesite el programador. MUY USADO
Sintaxis:

| NOTA: si el bloque de código de los if tienen una sola línea de código no es necesario utilizar llaves, aunque si se escriben, no da error. Lo mismo ocurre con el bloque de código alternativo |
Ejemplo:

Por consola:
BIENVENIDO AL PROGRAMA
Pedro y Luis son mayores de edad
Pedro y Luis pueden votar
FIN DE PROGRAMA
Es parecido o similar a la estructura if()...else if()...else if()...else, pero con ciertas limitaciones:
Ejemplo 1:

Por consola:
El operador es +
El operador es *
El operador es /
Operador desconocido
FIN DE PROGRAMA
Explicación:
Se ejecutan todas las instrucciones a partir del segundo case (es el que coincide con la variable operador). Si no hay ningún case coincidente, se ejecuta el código asociado a default.
| NOTA 1: no se puede repetir ningún case con el mismo valor. Se produce error de compilación |
| NOTA 2: si se quiere que el programa, cuando encuentre el primer case coincidente con el valor de la variable evaluada, salga del switch, debe agregarse a cada case la instrucción break del siguiente modo: |
Ejemplo 2:

Por consola:
El operador es +
FIN DE PROGRAMA
Estructura utilizada para ejecutar una o varias líneas de código un determinado número de veces. Este número de veces depende del cumplimiento de una condición fijada por el programador.
Sintaxis:

Ejemplo 1: se quiere desarrollar un programa que muestre por consola los números del 0 al 4. En este momento sólo se podría hacer de la siguiente manera:

Por consola:
0
1
2
3
4
FIN DE PROGRAMA
Este ejemplo se hace mucho mejor y con menos trabajo para el programador mediante un bucle for:

Si se modifica la línea System.out.println(i) por System.out.print(i) no se insertará una línea vacía después de cada número, aparecerán todos en la misma línea.

Por consola:
01234FIN DE PROGRAMA
Break
Aplicable dentro de bucles y estructuras condicionales de tipo switch. Su ejecución provoca que se salga del bucle o etiqueta que se esté ejecutando sin finalizar el resto de las sentencias asociadas al mismo.
Return
Se utiliza para truncar la ejecución de un método o para almacenar el dato que devuelven. Puede emplearse para truncar bucles cuando no haya más código después del bucle
Ejemplo 1:

Por consola:
0 1 2
Fuera del bucle
| NOTA: se sale del bucle en el momento en que i llega a 3.
Si se sustituye break por return, se trunca la ejecución del método main Por consola: 0 1 2 |
Ejemplo 2:

Por consola:
Primera linea de unMetodo
Has introducido 10
FIN DE PROGRAMA
Continue:
Aplicable sólo a bucles. Finaliza la iteración "i" que en ese momento se está ejecutando (significa que no ejecuta el resto de sentencias hasta el final del bucle) y vuelve a analizar la condición del bucle, pero con la siguiente iteración "i+1".

Por consola:
0 1 2 4 5 6 7 8 9 10
Fuera del bucle
Es uno o más bucles for dentro de otro. Se pueden poner los que se consideren necesarios.
Ejemplo 1:

Por consola:
INICIO DEL PROGRAMA
1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 4.1 4.2 4.3
FIN DE PROGRAMA
Ejemplo 2:

Por consola:
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
Estructura utilizada para repetir una o varias líneas de código siempre y cuando se cumpla una condición.
Sintaxis:

| NOTA: si el bloque de código que se repite tiene una sola línea no son necesarias las llaves |
Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.

Por consola:
0
1
2
3
4
5
FIN DEL PROGRAMA
Es casi igual al anterior: la diferencia estriba en que un bucle do...while se ejecuta, al menos una vez, el bloque de código encerrado dentro del bucle, independientemente del valor booleano que devuelva la condición del while.
Sintaxis:

| NOTA: si el bloque de instrucciones que se repite tiene una sola línea no son necesarias las llaves |
Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.

Ya se especificó cuando se estudió la variable primitiva char, que Java emplea para representar caracteres este código. Se trata ahora de mostrar por consola los caracteres Unicode del alfabeto occidental sabiendo que están contenidos en el intervalo [0,255]. Para ello se utilizará un bucle for
